:root{--bg:#fafafa;--bg-secondary:#f3f4f6;--fg:#111827;--fg-muted:#6b7280;--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#e0e7ff;--accent-light:#eef2ff;--event-academic:#10b981;--event-academic-bg:#d1fae5;--event-operational:#f59e0b;--event-operational-bg:#fef3c7;--panel:hsla(0,0%,100%,.85);--panel-solid:#fff;--line:#e5e7eb;--line-light:#f3f4f6;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow:0 4px 6px -1px rgba(0,0,0,.05),0 2px 4px -1px rgba(0,0,0,.03);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.05),0 4px 6px -2px rgba(0,0,0,.03);--transition:all 0.2s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box}body{margin:0;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,sans-serif;background-color:var(--bg);background-image:radial-gradient(at 0 0,rgba(16,15,21,.03) 0,transparent 50%),radial-gradient(at 50% 0,rgba(47,62,106,.03) 0,transparent 50%),radial-gradient(at 100% 0,rgba(114,39,65,.03) 0,transparent 50%);background-attachment:fixed;color:var(--fg);line-height:1.5;-webkit-font-smoothing:antialiased}.topbar{justify-content:space-between;gap:1rem;padding:1rem 2rem;background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(229,231,235,.5);position:-webkit-sticky;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-sm)}.brand-title,.topbar{display:flex;align-items:center}.brand-title{gap:.5rem}.brand-logo{width:28px;height:28px;object-fit:contain}.brand-wrap h1{margin:0;font-size:1.4rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--fg),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.brand-wrap p{margin:.2rem 0 0;color:var(--fg-muted);font-size:.85rem;font-weight:500}.topbar nav{display:flex;gap:.5rem;flex-wrap:wrap}.topbar a{color:var(--fg-muted);text-decoration:none;font-weight:600;font-size:.95rem;padding:.5rem 1rem;border-radius:999px;transition:var(--transition)}.topbar a:hover{color:var(--accent);background:var(--accent-light)}.container{max-width:1280px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.card{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow);transition:var(--transition)}.card:hover{box-shadow:var(--shadow-lg)}.hero-card{text-align:center;padding:3rem 1.5rem;background:linear-gradient(145deg,#fff 0,var(--accent-light) 100%);border-color:rgba(79,70,229,.1)}.section-title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.01em}.section-description{margin:.5rem 0 0;color:var(--fg-muted);font-size:.95rem}.primary-link{display:inline-block;margin-top:1rem;color:#fff;background:var(--accent);border:none;border-radius:999px;padding:.75rem 1.5rem;text-decoration:none;font-weight:600;font-family:inherit;font-size:.95rem;cursor:pointer;box-shadow:0 4px 14px 0 rgba(79,70,229,.39);transition:var(--transition)}.primary-link:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(79,70,229,.4)}.toolbar{margin-top:1.5rem;justify-content:space-between;gap:1rem}.toolbar,.toolbar-actions,.view-toggle{display:flex;align-items:center;flex-wrap:wrap}.toolbar-actions,.view-toggle{gap:.5rem}.view-toggle{background:var(--bg-secondary);padding:.25rem;border-radius:var(--radius);border:1px solid var(--line)}.toggle-btn{border:none;background:transparent;color:var(--fg-muted);border-radius:var(--radius-sm);padding:.5rem 1rem;cursor:pointer;font-weight:600;font-size:.9rem;transition:var(--transition)}.toggle-btn:hover{color:var(--fg)}.toggle-btn.active{color:var(--accent);box-shadow:var(--shadow-sm)}.nav-btn,.toggle-btn.active{background:var(--panel-solid)}.nav-btn{border:1px solid var(--line);color:var(--fg);border-radius:var(--radius);padding:.5rem 1rem;cursor:pointer;font-weight:600;font-size:.9rem;transition:var(--transition)}.nav-btn:hover{background:var(--bg-secondary);border-color:#d1d5db}.title-badge{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-hover);font-weight:700;font-size:.95rem;margin-left:.5rem}.table-card{overflow-x:auto;padding:0}.calendar-table{border-collapse:separate;border-spacing:0;width:100%;min-width:880px}.calendar-table td,.calendar-table th{border-bottom:1px solid var(--line);border-right:1px solid var(--line-light);padding:1rem;vertical-align:top}.calendar-table td:last-child,.calendar-table th:last-child{border-right:none}.calendar-table tr:last-child td,.calendar-table tr:last-child th{border-bottom:none}.calendar-table thead th{background:var(--bg-secondary);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);padding:.75rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.calendar-table tbody th{background:var(--panel-solid);color:var(--fg-muted);font-size:.9rem;font-weight:600;width:80px;text-align:center;vertical-align:middle}.cleaning-table tbody th{width:auto;white-space:nowrap;padding-left:1.5rem;padding-right:1.5rem}.cleaning-table tbody tr[class*=theme-tint-] td,.cleaning-table tbody tr[class*=theme-tint-] th{background:color-mix(in srgb,var(--theme-bg) 72%,#fff)}.cleaning-table tbody tr[class*=theme-tint-] th{position:relative;background:color-mix(in srgb,var(--theme-bg) 58%,#fff);box-shadow:inset 4px 0 0 var(--theme-accent)}.cleaning-table tbody tr[class*=theme-tint-]:hover td,.cleaning-table tbody tr[class*=theme-tint-]:hover th{background:color-mix(in srgb,var(--theme-bg) 82%,#fff)}.cleaning-table tbody tr.highlight-event td,.cleaning-table tbody tr.highlight-event th{background:color-mix(in srgb,#fff7d6 72%,#fff)}.cleaning-table tbody tr.highlight-event th{box-shadow:inset 4px 0 0 #d97706}.cleaning-table tbody tr[class*=theme-tint-] .chip{background:color-mix(in srgb,var(--theme-accent) 16%,#fff);color:var(--theme-accent);border:1px solid color-mix(in srgb,var(--theme-accent) 20%,#fff)}.assignee-chip-list{display:flex;flex-wrap:wrap;gap:.5rem}.assignee-chip-list-compact{gap:.4rem}.assignee-chip{display:inline-flex;align-items:center;gap:.45rem;border-radius:999px;border:1px solid var(--line);background:var(--panel-solid);color:var(--fg);padding:.4rem .75rem;font-size:.84rem;font-weight:700;box-shadow:var(--shadow-sm)}.cleaning-month-event[class*=theme-tint-] .assignee-chip,.cleaning-table tbody tr[class*=theme-tint-] .assignee-chip{background:color-mix(in srgb,var(--theme-bg) 42%,#fff);border-color:color-mix(in srgb,var(--theme-border) 72%,#fff);color:color-mix(in srgb,var(--theme-accent) 78%,#111827)}.cleaning-month-event.highlight-event .assignee-chip,.cleaning-table tbody tr.highlight-event .assignee-chip{background:#fff7e6;border-color:#fcd34d;color:#92400e}.assignee-chip-highlight{border-color:transparent;background:var(--theme-accent,var(--accent));color:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-accent,var(--accent)) 20%,transparent)}.assignee-chip-remove{border:none;background:transparent;color:inherit;font-size:.95rem;line-height:1;cursor:pointer;padding:0}.cleaning-table tbody tr[class*=theme-tint-] .assignee-chip-remove{color:var(--theme-accent)}.cleaning-table tbody tr.highlight-event .assignee-chip-remove{color:#b45309}.assignee-chip-remove:disabled{cursor:not-allowed;opacity:.55}.cleaning-editor-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.cleaning-table tbody tr[class*=theme-tint-] .cleaning-editor-controls{padding:.5rem .6rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--theme-bg) 64%,#fff);border:1px dashed color-mix(in srgb,var(--theme-border) 80%,#fff)}.cleaning-table tbody tr.highlight-event .cleaning-editor-controls{background:#fff8e8;border-color:#fcd34d}.inline-select{min-width:160px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .75rem;background:var(--panel-solid);color:var(--fg);font-family:inherit;font-size:.88rem}.cleaning-table tbody tr[class*=theme-tint-] .inline-select{border-color:color-mix(in srgb,var(--theme-border) 88%,#d1d5db);background:color-mix(in srgb,var(--theme-bg) 36%,#fff)}.inline-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cleaning-table tbody tr[class*=theme-tint-] .ghost-btn{border-color:color-mix(in srgb,var(--theme-border) 88%,#d1d5db);color:color-mix(in srgb,var(--theme-accent) 78%,#374151);background:color-mix(in srgb,var(--theme-bg) 30%,#fff)}.cleaning-table tbody tr[class*=theme-tint-] .ghost-btn:hover{border-color:var(--theme-accent);color:var(--theme-accent);background:color-mix(in srgb,var(--theme-bg) 52%,#fff)}.cleaning-chip,.lecture-card{border:1px solid var(--accent-soft);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:.75rem;background:var(--accent-light);transition:var(--transition);position:relative;overflow:hidden}.lecture-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--accent)}.cleaning-chip:hover,.lecture-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent)}.cleaning-chip strong,.lecture-card strong{display:block;font-size:.9rem;color:var(--fg);margin-bottom:.25rem}.cleaning-chip span,.lecture-card p,.lecture-card small{margin:0;font-size:.8rem;color:var(--fg-muted)}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.month-cell{background:var(--panel-solid);min-height:140px;padding:.75rem;transition:background-color .2s}.month-cell.outside,.month-cell:hover{background:var(--bg-secondary)}.month-cell.outside{opacity:.6}.month-cell header{font-weight:600;font-size:.9rem;color:var(--fg-muted);margin-bottom:.5rem;text-align:right}.month-cell.outside header{color:#9ca3af}.month-cell-body{gap:.4rem}.month-cell-body,.month-event{display:flex;flex-direction:column}.month-event{border-radius:var(--radius-sm);padding:.4rem .6rem;gap:.2rem;background:#fff;border:1px solid var(--line);transition:var(--transition);cursor:pointer}.month-event:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);transform:scale(1.02)}.chip{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;border-radius:999px;background:var(--bg-secondary);color:var(--fg-muted);padding:.15rem .5rem;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.cleaning-month-event,.month-event:has(.chip:contains("ACADEMIC")){border-left:3px solid var(--accent)}.theme-tint-0{--theme-bg:#eff6ff;--theme-border:#93c5fd;--theme-accent:#3b82f6}.theme-tint-1{--theme-bg:#eef2ff;--theme-border:#a5b4fc;--theme-accent:#6366f1}.theme-tint-2{--theme-bg:#f5f3ff;--theme-border:#c4b5fd;--theme-accent:#8b5cf6}.theme-tint-3{--theme-bg:#faf5ff;--theme-border:#d8b4fe;--theme-accent:#a855f7}.theme-tint-4{--theme-bg:#fdf4ff;--theme-border:#f0abfc;--theme-accent:#d946ef}.theme-tint-5{--theme-bg:#fff1f2;--theme-border:#fda4af;--theme-accent:#f43f5e}.theme-tint-6{--theme-bg:#fef2f2;--theme-border:#fca5a5;--theme-accent:#ef4444}.theme-tint-7{--theme-bg:#fff7ed;--theme-border:#fdba74;--theme-accent:#f97316}.theme-tint-8{--theme-bg:#fffbeb;--theme-border:#fcd34d;--theme-accent:#f59e0b}.theme-tint-9{--theme-bg:#ecfdf5;--theme-border:#6ee7b7;--theme-accent:#10b981}.theme-tint-10{--theme-bg:#f0fdfa;--theme-border:#5eead4;--theme-accent:#14b8a6}.theme-tint-11{--theme-bg:#ecfeff;--theme-border:#67e8f9;--theme-accent:#06b6d4}.theme-tint-12{--theme-bg:#f0f9ff;--theme-border:#7dd3fc;--theme-accent:#0ea5e9}.theme-tint-13{--theme-bg:#f8fafc;--theme-border:#cbd5e1;--theme-accent:#64748b}.theme-tint-14{--theme-bg:#f7fee7;--theme-border:#bef264;--theme-accent:#65a30d}.theme-tint-15{--theme-bg:#fefce8;--theme-border:#fde047;--theme-accent:#ca8a04}.theme-tint-16{--theme-bg:#fafaf9;--theme-border:#d6d3d1;--theme-accent:#78716c}.theme-tint-17{--theme-bg:#f0fdf4;--theme-border:#86efac;--theme-accent:#16a34a}.theme-tint-cancelled{--theme-bg:#f1f5f9;--theme-border:#94a3b8;--theme-accent:#475569}.cleaning-card[class*=theme-tint-],.lecture-card[class*=theme-tint-]{background-color:var(--theme-bg);border-color:var(--theme-border)}.cleaning-card[class*=theme-tint-]:before,.lecture-card[class*=theme-tint-]:before{background-color:var(--theme-accent)}.cleaning-card[class*=theme-tint-]:hover,.lecture-card[class*=theme-tint-]:hover{border-color:var(--theme-accent)}.month-event[class*=theme-tint-]{background-color:var(--theme-bg);border-color:var(--theme-border)}.month-event[class*=theme-tint-]:hover{border-color:var(--theme-accent)}.month-event[class*=theme-tint-] .chip{background-color:var(--panel-solid);color:var(--theme-accent)}.highlight-text{color:var(--accent);font-weight:800;background-color:var(--accent-soft);padding:0 .25rem;border-radius:4px}.highlight-event{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background-color:#f8fafc}.event-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));grid-gap:1rem;gap:1rem}.event-item{border:1px solid var(--line);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.4rem;background:var(--panel-solid);transition:var(--transition);min-width:0}.event-item:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.event-item p{margin:0;font-size:.9rem;color:var(--fg-muted)}.event-item strong{font-size:1.05rem;color:var(--fg)}.event-item[class*=theme-tint-]{background-color:var(--theme-bg);border-color:var(--theme-border)}.event-item[class*=theme-tint-]:hover{border-color:var(--theme-accent)}.calendar-event-datetime,.calendar-event-meta,.calendar-event-title,.calendar-month-meta{font-size:.85rem;color:var(--fg-muted);overflow-wrap:anywhere;word-break:keep-all}.calendar-event-title{margin:0}.event-item strong{overflow-wrap:anywhere;word-break:keep-all}.day-group-stack{gap:1.5rem;margin-top:1rem}.day-group,.day-group-stack{display:flex;flex-direction:column}.day-group{gap:.75rem}.day-group+.day-group{border-top:1px solid var(--line);padding-top:1.5rem}.day-group-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.day-group-header h4{margin:0;font-size:1rem;color:var(--fg)}.day-group-list{margin-top:0}.muted{font-size:.9rem}.empty-cell,.muted{color:var(--fg-muted)}.empty-cell{text-align:center;padding:2rem!important}.filters{margin-top:1rem;gap:1rem;flex-wrap:wrap}.filters,.filters label{display:flex;align-items:center}.filters label{gap:.5rem;font-weight:600;font-size:.9rem;color:var(--fg)}.filters input,.filters select{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .75rem;background:var(--panel-solid);font-family:inherit;font-size:.9rem;color:var(--fg);outline:none;transition:var(--transition)}.filters input:focus,.filters select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.groups-layout{display:flex;flex-direction:column;gap:1.5rem}.groups-card-header,.groups-form-actions,.groups-summary-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.groups-summary-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.groups-form{margin-top:1.25rem}.groups-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.groups-form-grid label,.managed-group-editor label{display:flex;flex-direction:column;gap:.5rem;font-weight:600;color:var(--fg)}.groups-form-grid input,.groups-form-grid textarea,.managed-group-editor input,.managed-group-editor textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .9rem;background:var(--panel-solid);font-family:inherit;font-size:.95rem;color:var(--fg);outline:none;resize:vertical;transition:var(--transition)}.groups-form-grid input:focus,.groups-form-grid textarea:focus,.managed-group-editor input:focus,.managed-group-editor textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.groups-form-wide{grid-column:2/3}.groups-submit-btn{margin-top:0}.groups-form-message,.groups-inline-message{margin:0}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:1rem;gap:1rem}.managed-group-grid{margin-top:1rem}.managed-group-card{display:flex;flex-direction:column;gap:1rem}.managed-group-actions,.managed-group-footer,.managed-group-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.managed-group-label{margin:0 0 .35rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}.managed-group-header h3{margin:0}.managed-group-description{margin:0;line-height:1.6;color:var(--fg-muted)}.managed-group-editor{display:flex;flex-direction:column;gap:.9rem}.empty-group-card{justify-content:center}.final-project-form-grid{align-items:start}.final-project-summary-card .final-project-create-panel{flex-basis:100%;width:100%;margin-top:.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.final-project-idea-field{grid-column:1/-1}.final-project-form-actions{margin-top:1.1rem}.final-project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.25rem;flex-wrap:wrap}.final-project-search{display:flex;align-items:center;gap:.6rem;color:var(--fg-muted);font-weight:700}.final-project-search input{width:min(320px,70vw);border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .85rem;background:var(--panel-solid);font-family:inherit;font-size:.95rem;color:var(--fg);outline:none;transition:var(--transition)}.final-project-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.final-project-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.final-project-card{position:relative}.final-project-card-closed{background:color-mix(in srgb,var(--panel-solid) 80%,var(--bg-secondary))}.final-project-card-closed .final-project-idea-text,.final-project-card-closed .final-project-updated{color:#7b8190}.final-project-card-header{align-items:flex-start}.final-project-status{display:inline-flex;align-items:center;gap:.65rem;border:none;background:transparent;padding:.1rem 0;font-family:inherit;font-size:.84rem;font-weight:800;cursor:pointer;transition:var(--transition);white-space:nowrap}.final-project-status-text{min-width:3.2rem;text-align:right}.final-project-status.closed,.final-project-status.open{color:var(--fg)}.final-project-switch{position:relative;display:inline-flex;width:3.45rem;height:1.95rem;border-radius:999px;background:#d1d5db;box-shadow:inset 0 0 0 1px rgba(17,24,39,.08);transition:var(--transition)}.final-project-switch-knob{position:absolute;top:.22rem;left:.22rem;width:1.5rem;height:1.5rem;border-radius:999px;background:#fff;box-shadow:var(--shadow-sm);transition:var(--transition)}.final-project-status.closed .final-project-switch{background:#2563eb}.final-project-status.closed .final-project-switch-knob{transform:translateX(1.5rem)}.final-project-closed-count{background:var(--bg-secondary);color:var(--fg-muted)}.final-project-status:hover:not(:disabled) .final-project-switch{box-shadow:inset 0 0 0 1px rgba(17,24,39,.08),var(--shadow-sm)}.final-project-status:disabled{cursor:not-allowed;opacity:.65}.final-project-idea-text{white-space:pre-wrap}.final-project-updated{color:var(--fg-muted);font-size:.85rem;font-weight:600}.users-layout{display:flex;flex-direction:column;gap:1.5rem}.users-card-header,.users-form-actions,.users-summary-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.users-summary-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.users-form{margin-top:1.25rem}.users-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.users-form-grid label{display:flex;flex-direction:column;gap:.5rem;font-weight:600;color:var(--fg)}.users-form-grid input,.users-form-grid select{width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .9rem;background:var(--panel-solid);font-family:inherit;font-size:.95rem;color:var(--fg);outline:none;transition:var(--transition)}.users-form-grid input:focus,.users-form-grid select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.users-submit-btn{margin-top:0}.users-form-message{margin:0}.users-inline-message{margin-top:1rem;margin-bottom:0}.users-filters{margin-top:0}.users-table-wrap{margin-top:1rem;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.users-table{width:100%;min-width:700px;border-collapse:collapse;background:var(--panel-solid)}.users-table td,.users-table th{padding:.95rem 1rem;border-bottom:1px solid var(--line);text-align:left}.users-table th{background:var(--bg-secondary);color:var(--fg-muted);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.users-table tbody tr:hover{background:rgba(79,70,229,.04)}.users-table tbody tr:last-child td{border-bottom:none}.users-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.name-editor,.user-name-cell{display:flex;flex-direction:column;gap:.55rem}.user-name-value{font-weight:700;color:var(--fg)}.inline-name-input{width:100%;min-width:180px;border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .8rem;background:var(--panel-solid);font-family:inherit;font-size:.92rem;color:var(--fg)}.inline-name-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.inline-name-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ghost-btn{border:1px solid var(--line);background:transparent;color:var(--fg-muted);border-radius:var(--radius);padding:.45rem .75rem;cursor:pointer;font-weight:600;font-size:.84rem;transition:var(--transition)}.ghost-btn:hover{border-color:var(--accent);color:var(--accent)}.quick-gender{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.quick-gender-btn{border:1px solid var(--line);background:#fff;color:var(--fg-muted);border-radius:999px;padding:.45rem .75rem;cursor:pointer;font-weight:700;font-size:.82rem;transition:var(--transition)}.quick-gender-btn-active,.quick-gender-btn:hover{border-color:var(--accent);color:var(--accent)}.quick-gender-btn-active{background:var(--accent-soft)}.count-stepper{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.count-stepper-btn{border:1px solid var(--line);background:#fff;color:var(--fg);border-radius:999px;min-width:3rem;padding:.45rem .7rem;cursor:pointer;font-weight:700;font-size:.82rem;transition:var(--transition)}.count-stepper-btn:hover{border-color:var(--accent);color:var(--accent)}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.45rem .8rem;border-radius:999px;background:var(--bg-secondary);color:var(--fg);font-weight:700;font-size:.85rem}.status-stack{display:flex;flex-direction:column;gap:.45rem;align-items:flex-start}.row-muted{font-size:.82rem;color:var(--fg-muted)}.status-chip{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;font-size:.82rem;font-weight:700}.status-chip-active{background:#dcfce7;color:#166534}.status-chip-inactive{background:#f3f4f6;color:#4b5563}.danger-btn{border:1px solid #fecaca;background:#fff1f2;color:#be123c;border-radius:var(--radius);padding:.5rem .9rem;cursor:pointer;font-weight:600;font-size:.9rem;transition:var(--transition)}.danger-btn:hover{background:#ffe4e6;border-color:#fda4af}.count-stepper-btn:disabled,.danger-btn:disabled,.ghost-btn:disabled,.nav-btn:disabled,.primary-link[aria-disabled=true],.quick-gender-btn:disabled{opacity:.55;cursor:not-allowed}.toast-notification{position:fixed;right:1.5rem;bottom:1.5rem;z-index:100;min-width:240px;max-width:min(420px,calc(100vw - 3rem));padding:.9rem 1rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel-solid);box-shadow:var(--shadow-lg);font-size:.92rem;font-weight:600;animation:toast-slide-in .18s ease-out}.toast-success{border-color:#86efac;background:#f0fdf4;color:#166534}.toast-error{border-color:#fda4af;background:#fff1f2;color:#be123c}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.classes-layout{display:flex;flex-direction:column;gap:1.5rem}.classes-card-header,.classes-form-actions,.classes-summary-card{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.classes-summary-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.classes-form{margin-top:1.25rem}.classes-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.class-editor label,.classes-form-grid label{display:flex;flex-direction:column;gap:.5rem;font-weight:600;color:var(--fg)}.class-editor input,.classes-form-grid input{width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .9rem;background:var(--panel-solid);font-family:inherit;font-size:.95rem;color:var(--fg);outline:none;transition:var(--transition)}.class-editor input:focus,.classes-form-grid input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1rem;gap:1rem}.class-card{display:flex;flex-direction:column;gap:1rem}.class-card-footer,.class-card-header,.class-editor-actions{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;flex-wrap:wrap}.class-card-header h3,.class-editor h3{margin:0;font-size:1.1rem;color:var(--fg)}.class-card-professor{margin:.35rem 0 0;color:var(--fg-muted);font-size:.95rem}.class-palette-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.palette-swatch{border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .4rem;background:var(--panel-solid);cursor:pointer;transition:var(--transition);display:flex;flex-direction:column;gap:.35rem;align-items:center;justify-content:center;min-height:74px}.palette-swatch:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.palette-swatch-active{border-color:var(--theme-accent,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-accent,var(--accent)) 18%,transparent)}.palette-swatch-color{width:100%;height:24px;border-radius:999px;background:var(--theme-accent);border:1px solid color-mix(in srgb,var(--theme-accent) 40%,#fff)}.palette-swatch-label{font-size:.74rem;font-weight:700;color:var(--fg-muted)}.class-card-current{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--fg-muted)}.class-card-current-dot{width:14px;height:14px;border-radius:999px;background:var(--theme-accent);border:1px solid color-mix(in srgb,var(--theme-accent) 40%,#fff)}.class-editor{display:flex;flex-direction:column;gap:1rem}.class-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}@media (max-width:1024px){.month-grid{display:flex;flex-direction:column;gap:1rem;background:transparent;border:none}.month-cell{border:1px solid var(--line);border-radius:var(--radius)}.users-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.groups-form-grid{grid-template-columns:1fr}.final-project-idea-field,.groups-form-wide{grid-column:auto}.class-palette-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:768px){.topbar{flex-direction:column;align-items:flex-start;padding:1rem}.topbar nav{width:100%;overflow-x:auto;padding-bottom:.5rem}.topbar a{white-space:nowrap}.toolbar{flex-direction:column;align-items:flex-start}.class-editor-grid,.classes-form-grid,.users-form-grid{grid-template-columns:1fr}.managed-group-actions,.managed-group-footer,.managed-group-header{flex-direction:column;align-items:flex-start}.final-project-search,.final-project-toolbar{align-items:stretch;width:100%}.final-project-search{flex-direction:column}.final-project-search input{width:100%}.users-table{min-width:560px}.class-palette-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.calendar-item-button{cursor:pointer}.calendar-item-button-active{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent)}.month-cell-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}.month-cell-action{padding:.35rem .6rem;font-size:.76rem}.calendar-admin-layout{display:flex;flex-direction:column;gap:1rem}.calendar-admin-shell{display:grid;grid-template-columns:minmax(0,1fr) 400px;grid-gap:1.5rem;gap:1.5rem;align-items:start}.calendar-admin-main,.calendar-admin-side{min-width:0}.calendar-admin-side .calendar-admin-layout{position:-webkit-sticky;position:sticky;top:5.5rem}.calendar-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.calendar-editor-form{display:flex;flex-direction:column;gap:1rem}.calendar-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.calendar-editor-grid label{display:flex;flex-direction:column;gap:.5rem;font-weight:600;color:var(--fg)}.calendar-editor-grid input,.calendar-editor-grid select{width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .9rem;background:var(--panel-solid);font-family:inherit;font-size:.95rem;color:var(--fg);outline:none;transition:var(--transition)}.calendar-editor-grid input:focus,.calendar-editor-grid select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.calendar-editor-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.calendar-editor-checkbox{flex-direction:row!important;align-items:center;gap:.65rem!important;padding-top:2rem}.calendar-editor-checkbox input{width:auto}.calendar-admin-note{margin:0;padding:.9rem 1rem;border-radius:var(--radius);background:var(--bg-secondary);color:var(--fg-muted)}.calendar-guide-wrap{display:flex;flex-direction:column;gap:.9rem;margin-top:1rem}.calendar-guide-toggle{align-self:flex-start}.calendar-guide-toggle-active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.calendar-guide-card{display:flex;flex-direction:column;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-solid)}.calendar-guide-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.calendar-guide-description{margin:.35rem 0 0;color:var(--fg-muted);font-size:.92rem}.calendar-guide-term-toggle{flex-shrink:0}.calendar-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.calendar-guide-section{display:flex;flex-direction:column;gap:.65rem;padding:1rem;border-radius:var(--radius);background:var(--bg-secondary);border:1px solid var(--line)}.calendar-guide-section h4{margin:0;font-size:1rem;color:var(--fg)}.calendar-guide-kicker{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}.calendar-guide-list{margin:0;padding-left:1.1rem;color:var(--fg-muted);display:flex;flex-direction:column;gap:.45rem}@media (max-width:768px){.calendar-editor-grid,.calendar-guide-grid,.event-list{grid-template-columns:1fr}.day-group-header{flex-wrap:wrap}}@media (max-width:1180px){.calendar-admin-shell{grid-template-columns:1fr}.calendar-admin-side .calendar-admin-layout{position:static}}