@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-body:#f7f9fc;--bg-card:#fff;--text-main:#111827;--text-muted:#6b7280;--border:#e5e7eb;--primary:#000;--primary-hover:#374151;--accent:#2563eb;--success:#10b981;--danger:#ef4444;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,-apple-system,sans-serif}body{background-color:var(--bg-body);color:var(--text-main);min-height:100vh}.app-container{max-width:1200px;margin:0 auto;padding:2.5rem 1.5rem}header{justify-content:space-between;align-items:center;margin-bottom:2.5rem;display:flex}.header-title{align-items:center;gap:.75rem;display:flex}.header-title h1{letter-spacing:-.025em;color:var(--text-main);font-size:1.5rem;font-weight:700}.tabs{border-bottom:1px solid var(--border);gap:1rem;margin-bottom:2rem;padding-bottom:1px;display:flex}.tab-button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.75rem 1.25rem;font-size:.95rem;font-weight:500;transition:color .2s;position:relative}.tab-button:hover,.tab-button.active{color:var(--text-main)}.tab-button.active:after{content:"";background:var(--primary);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;padding:2rem}.card-header{margin-bottom:1.5rem}.card-title{color:var(--text-main);letter-spacing:-.025em;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}.card-description{color:var(--text-muted);margin-top:.25rem;font-size:.875rem}.form-grid{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem;display:grid}.input-group{flex-direction:column;gap:.5rem;display:flex}.input-group label{color:var(--text-main);font-size:.875rem;font-weight:500}.input-group input{border:1px solid var(--border);color:var(--text-main);background:#fff;border-radius:8px;padding:.625rem .875rem;font-size:.95rem;transition:all .2s}.input-group input:focus{border-color:var(--text-muted);box-shadow:0 0 0 1px var(--text-muted);outline:none}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.95rem;font-weight:500;transition:background .2s;display:inline-flex}.btn-primary:hover{background:var(--primary-hover)}.toolbar{gap:1rem;margin-bottom:1.5rem;display:flex}.search-bar{flex:1;position:relative}.search-bar svg{color:var(--text-muted);position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.search-bar input{border:1px solid var(--border);border-radius:8px;width:100%;padding:.625rem 1rem .625rem 2.5rem;font-size:.95rem}.search-bar input:focus{border-color:var(--text-muted);outline:none}.data-list{flex-direction:column;gap:1.5rem;display:flex}.task-item{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;overflow:hidden}.task-header{border-bottom:1px solid var(--border);background:#f9fafb;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.avatar{width:36px;height:36px;color:var(--text-main);background:#e5e7eb;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:flex}.teacher-name{font-size:.95rem;font-weight:600}.teacher-id{color:var(--text-muted);font-size:.85rem}.date-badge{color:var(--text-main);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:9999px;padding:.25rem .75rem;font-size:.85rem;font-weight:500}.periods-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;padding:1.5rem;display:grid}.period-card{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.875rem}.period-card-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.period-title{color:var(--text-main);font-size:.95rem;font-weight:600}.period-subtitle{color:var(--text-muted);margin-top:.125rem;font-size:.875rem}.badge-vacant{color:#dc2626;background:#fef2f2;border-radius:9999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.empty-state{text-align:center;color:var(--text-muted);padding:4rem 2rem}.empty-state svg{opacity:.5;margin-bottom:1rem}.empty-state h3{color:var(--text-main);margin-bottom:.25rem;font-size:1.125rem;font-weight:500}.message{border-radius:8px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:1rem;font-size:.9rem;display:flex}.message.success{color:#059669;background:#ecfdf5;border:1px solid #d1fae5}.message.error{color:#dc2626;background:#fef2f2;border:1px solid #fee2e2}@media (width<=768px){.form-grid,.teachers-layout{grid-template-columns:1fr}}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-completed{color:#059669;background:#ecfdf5;border:1px solid #a7f3d0}.status-incomplete{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.teacher-grid{border:1px solid var(--border);background:#fff;border-radius:16px;flex-direction:column;gap:0;display:flex;overflow:hidden}.teacher-card{border-bottom:1px solid var(--border);background:#fff;border-left:4px solid #0000;justify-content:space-between;align-items:center;padding:1.25rem 2rem;transition:all .2s;display:flex}.teacher-card:last-child{border-bottom:none}.teacher-card.clickable{cursor:pointer}.teacher-card.clickable:hover{background:#f8fafc;padding-left:2.25rem}.teacher-card.completed{border-left-color:#10b981}.teacher-card.incomplete{border-left-color:#f59e0b}.task-meta{align-items:center;gap:1.5rem;display:flex}.avatar{background:linear-gradient(135deg, var(--primary), #4f46e5);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.25rem;font-weight:700;display:flex;box-shadow:0 4px 10px #4f46e533}.teacher-name{color:var(--text-main);margin-bottom:.25rem;font-size:1.15rem;font-weight:700}.teacher-id{color:var(--text-muted);font-size:.9rem;font-weight:500}.teacher-card{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;padding:1.25rem;transition:all .2s;display:flex}.teacher-card.clickable:hover{cursor:pointer;border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;background:#0f172a99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-content{background:#f8fafc;border-radius:24px 24px 0 0;flex-direction:column;width:100%;max-width:1200px;height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow-y:auto;box-shadow:0 -20px 40px #0003}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#fffffff2;justify-content:space-between;align-items:center;padding:2rem 3rem;display:flex;position:sticky;top:0}.modal-header h2{color:var(--primary);align-items:center;gap:1rem;font-size:1.75rem;font-weight:800;display:flex}.modal-body{flex:1;padding:3rem}.periods-grid{flex-direction:column;gap:1.25rem;display:flex}.period-card{border:1px solid var(--border);border-top:4px solid var(--primary);background:#fff;border-radius:20px;padding:2rem;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.period-card:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.period-card-header{text-transform:uppercase;letter-spacing:.15em;color:var(--primary);align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:.85rem;font-weight:800;display:flex}.period-subtitle{color:var(--text-muted);margin-bottom:.75rem;font-size:1rem;font-weight:500;line-height:1.5}.period-topic{color:#334155;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.25rem;font-size:.95rem;line-height:1.6}.period-topic strong{color:var(--primary)}.btn-close:hover{color:var(--text-main);background:#e2e8f0;transform:rotate(90deg)}.periods-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;display:grid}.period-card{box-shadow:var(--shadow-sm);border:1px solid var(--border);background:#fff;border-radius:16px;padding:1.25rem;transition:all .2s;position:relative;overflow:hidden}.period-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary)}.period-card-header{text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin-bottom:.75rem;font-size:.75rem;font-weight:700}.period-title{color:var(--text-main);margin-bottom:.25rem;font-size:1.1rem;font-weight:700}.period-subtitle{color:var(--text-muted);font-size:.9rem;font-weight:500}.badge-vacant{color:#64748b;background:#f1f5f9;border-radius:8px;padding:.4rem .75rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn-close{cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.btn-close:hover{color:var(--text-main);background:#e5e7eb}.teachers-layout{grid-template-columns:350px 1fr;gap:2rem;display:grid}.btn-outline{color:var(--text-main);border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-outline:hover{background:#f9fafb;border-color:#d1d5db}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.credentials-list{flex-direction:column;gap:.75rem;display:flex}.credential-item{border:1px solid var(--border);background:#f9fafb;border-radius:8px;justify-content:space-between;align-items:center;padding:1rem;display:flex}.cred-name{color:var(--text-main);font-size:.95rem;font-weight:600}.cred-id{color:var(--text-muted);margin-top:.25rem;font-size:.85rem}.cred-password{align-items:center;gap:.5rem;display:flex}.pass-box{border:1px solid var(--border);color:var(--text-main);text-align:center;background:#fff;border-radius:6px;min-width:100px;padding:.35rem .75rem;font-family:monospace;font-size:.9rem}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.25rem;display:flex}.icon-btn:hover{color:var(--text-main);background:#e5e7eb}
