:root{--bg-gradient:linear-gradient(135deg, #f6f8fd 0%, #f1f5f9 100%);--table-bg:#ffffffa6;--glass-border:#ffffff80;--glass-shadow:0 12px 40px 0 #1f26870d;--backdrop-blur:blur(12px);--text-primary:#0f172a;--text-secondary:#475569;--border-color:#cbd5e1;--primary-color:#3b82f6;--primary-hover:#2563eb;--theory-header-bg:#dbeafecc;--lab-header-bg:#fef3c7cc;--lunch-bg:#f1f5f9cc;--filled-theory:#eff6ff;--filled-theory-border:#bfdbfe;--filled-lab:#fffbeb;--filled-lab-border:#fde68a;--hover-bg:#ffffffe6}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-primary);min-height:100vh;padding:2rem;font-family:Inter,sans-serif;line-height:1.6}.app-container{max-width:1400px;margin:0 auto}header{background:var(--table-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:2.5rem;padding:1rem 2rem;display:flex}.actions{gap:1rem;display:flex}h1{letter-spacing:-.5px;background:linear-gradient(90deg,#1e293b,#3b82f6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.8rem;font-weight:800}.primary-btn{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #3b82f64d}.primary-btn:hover{background-color:var(--primary-hover);transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.primary-btn:active{transform:translateY(1px)}.secondary-btn{-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;background-color:#fffc;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.secondary-btn:hover{background-color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.table-wrapper{background:var(--table-bg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.5rem;overflow-x:auto}table{border-collapse:separate;border-spacing:4px;width:100%;min-width:1200px}th,td{text-align:center;border:1px solid #cbd5e166;border-radius:8px;padding:.75rem;transition:all .2s}th{color:var(--text-secondary);font-size:.85rem;font-weight:600}.day-header{color:var(--text-primary);background:#f8fafc99;width:80px;font-weight:700}.theory-header{background:var(--theory-header-bg)}.lab-header{background:var(--lab-header-bg)}.lunch-col{background:var(--lunch-bg);color:var(--text-secondary);writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:2px;width:40px;font-weight:600;transform:rotate(180deg)}.slot-cell{cursor:pointer;height:85px;color:var(--text-secondary);background:#ffffff80;font-size:.8rem;position:relative}.slot-cell:hover{background:var(--hover-bg);z-index:10;border-color:var(--primary-color);transform:scale(1.02);box-shadow:0 4px 12px #0000000d}.slot-filled.theory-slot{background:var(--filled-theory);border-color:var(--filled-theory-border)}.slot-filled.lab-slot{background:var(--filled-lab);border-color:var(--filled-lab-border)}.course-code{color:var(--primary-color);letter-spacing:.5px;margin-bottom:2px;font-size:.85rem;font-weight:800}.subject-name{color:var(--text-primary);margin-bottom:3px;font-size:.85rem;font-weight:600}.teacher-name,.venue-name{color:var(--text-secondary);font-size:.7rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:1000;background:#0f172a66;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.modal-overlay.active{opacity:1;pointer-events:auto}.modal{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fffc;border-radius:20px;width:90%;max-width:450px;padding:2rem;transition:all .3s cubic-bezier(.34,1.56,.64,1);transform:translateY(20px)scale(.95);box-shadow:0 25px 50px -12px #00000040}.modal-overlay.active .modal{transform:translateY(0)scale(1)}.modal h2{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem;font-weight:600;display:block}.form-group input,.form-group textarea{border:2px solid var(--border-color);background:#ffffff80;border-radius:10px;width:100%;padding:.85rem 1rem;font-family:inherit;font-size:.95rem;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary-color);background:#fff;outline:none;box-shadow:0 0 0 3px #3b82f626}.radio-group{gap:1rem;display:flex}.radio-label{cursor:pointer;flex:1}.radio-label input{display:none}.radio-custom{text-align:center;border:2px solid var(--border-color);color:var(--text-secondary);background:#ffffff80;border-radius:10px;padding:.75rem;font-weight:600;transition:all .2s;display:block}.radio-label input:checked+.radio-custom{border-color:var(--primary-color);color:var(--primary-color);background-color:#eff6ff}.modal-actions{justify-content:space-between;align-items:center;margin-top:2rem;display:flex}.right-actions{gap:.75rem;display:flex}.btn-clear{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #fca5a5;border-radius:8px;padding:.6rem 1rem;font-weight:600;transition:all .2s}.btn-clear:hover{background:#fef2f2}.btn-cancel{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:8px;padding:.6rem 1.25rem;font-weight:600;transition:all .2s}.btn-cancel:hover{background:#f1f5f9}.btn-save{background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.5rem;font-weight:600;transition:all .2s;box-shadow:0 4px 10px #3b82f64d}.btn-save:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 14px #3b82f666}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f980;border-radius:4px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}
