*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,sans-serif;background:#f5f7fa;color:#222;font-size:15px;line-height:1.5}a{color:#1e5aa8;text-decoration:none}a:hover{text-decoration:underline}h1{padding:16px 24px;font-weight:400;font-size:26px}h2{font-size:20px;font-weight:500}h3{font-size:17px;font-weight:500}.top-bar{background:#1e5aa8;color:#fff;padding:12px 24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.top-bar .school{font-weight:500;white-space:nowrap}.top-bar nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}.top-bar nav a{color:#fff;padding:6px 12px;border-radius:4px;font-size:14px;text-decoration:none}.top-bar nav a.active,.top-bar nav a:hover{background:#ffffff26}.btn-primary{background:#1e5aa8;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:15px;transition:.15s}.btn-primary:hover{background:#17487f}.btn-primary:disabled{background:#9bb4d1;cursor:not-allowed}button{font-family:inherit}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#e8eef5;padding:20px}.auth-card{background:#fff;padding:36px 32px;border-radius:10px;width:100%;max-width:460px;box-shadow:0 4px 24px #00000014}.auth-card h2{margin-bottom:8px}.auth-card p{color:#666;font-size:14px;margin-bottom:16px}.auth-card input{width:100%;padding:10px 12px;margin-bottom:10px;border:1px solid #ccd6e0;border-radius:4px;font-size:15px}.auth-card input:focus{outline:none;border-color:#1e5aa8;box-shadow:0 0 0 2px #1e5aa826}.error{color:#c62828;font-size:13px;padding:8px 12px;background:#fdecea;border-radius:4px;margin-bottom:12px}.role-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}.role-button{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#f5f8fc;border:1px solid #d9e2ec;border-radius:8px;font-size:16px;cursor:pointer;transition:.15s;color:#222;font-weight:500}.role-button:hover{background:#e8f0fb;border-color:#1e5aa8}.role-count{background:#1e5aa8;color:#fff;border-radius:12px;padding:2px 10px;font-size:13px;font-weight:400}.back-button{background:transparent;border:none;color:#1e5aa8;font-size:14px;cursor:pointer;padding:4px 0}.back-button:hover{text-decoration:underline}.profile-list{list-style:none;margin-top:8px;padding:0}.profile-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid #e4ebf2;border-radius:8px;margin-bottom:8px;cursor:pointer;transition:.15s;background:#fff}.profile-item:hover{background:#f0f6ff;border-color:#1e5aa8}.profile-avatar{width:44px;height:44px;border-radius:50%;background:#1e5aa8;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;overflow:hidden;flex-shrink:0}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-info{flex:1;min-width:0}.profile-name{font-weight:500;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-login{font-size:12px;color:#888}.profile-arrow{color:#1e5aa8;font-size:18px;flex-shrink:0}.tabs{display:flex;gap:8px;padding:0 24px;margin:16px 0}.tabs button{padding:10px 20px;background:#fff;border:1px solid #ccd6e0;border-radius:4px;cursor:pointer;font-size:14px;transition:.15s}.tabs button:hover{border-color:#1e5aa8;color:#1e5aa8}.tabs button.active{background:#1e5aa8;color:#fff;border-color:#1e5aa8}.filters{display:flex;gap:8px;padding:16px 24px;flex-wrap:wrap;align-items:center}.filters select,.filters input{padding:8px 10px;border:1px solid #ccd6e0;border-radius:4px;font-size:14px;min-width:160px;background:#fff}.filters select:focus,.filters input:focus{outline:none;border-color:#1e5aa8}.year-selector{padding:0 24px;margin-bottom:8px}.year-selector select{padding:8px 10px;border:1px solid #ccd6e0;border-radius:4px;font-size:14px;background:#fff}.toolbar{padding:0 24px;display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.toolbar button{padding:8px 14px;background:#fff;border:1px solid #ccd6e0;border-radius:4px;cursor:pointer;font-size:14px;transition:.15s}.toolbar button:hover{border-color:#1e5aa8;color:#1e5aa8}.data-table,.journal-table,.report-table{width:calc(100% - 48px);margin:0 24px;border-collapse:collapse;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.data-table th,.journal-table th,.report-table th,.data-table td,.journal-table td,.report-table td{padding:10px 14px;border-bottom:1px solid #e4ebf2;text-align:left;font-size:14px}.data-table th,.journal-table th,.report-table th{background:#f5f8fc;font-weight:600;color:#444}.data-table tr:last-child td,.journal-table tr:last-child td,.report-table tr:last-child td{border-bottom:none}.journal-table th,.journal-table td{text-align:center}.journal-table td:first-child,.journal-table td:nth-child(2){text-align:left}.journal-table button{min-width:40px;padding:4px 8px;cursor:pointer;border:1px solid #ccd6e0;background:#fff;border-radius:4px}.journal-table button:hover{border-color:#1e5aa8;color:#1e5aa8}.schedule-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:16px}.day-header{background:#fff;padding:10px;text-align:center;font-weight:500;border-bottom:2px solid #1e5aa8;font-size:14px}.day-header.active{color:#1e5aa8}.lesson{background:#fff;padding:8px;border-radius:4px;font-size:13px;border-left:3px solid #1e5aa8;margin-bottom:4px}.lesson-time{color:#666;font-size:11px}.lesson-subject{color:#1e5aa8;font-weight:500;margin-top:2px}.lesson-class{color:#666;font-size:12px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-content{background:#fff;padding:24px;border-radius:10px;max-width:640px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.modal-content h2{margin-bottom:16px}.modal-content input,.modal-content select,.modal-content textarea{width:100%;padding:10px;margin-bottom:10px;border:1px solid #ccd6e0;border-radius:4px;font-size:14px;font-family:inherit}.modal-content label{display:flex;align-items:center;gap:8px;font-size:14px;color:#444;margin-bottom:10px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.modal-actions button{padding:10px 20px;border-radius:4px;border:1px solid #ccd6e0;background:#fff;cursor:pointer;font-size:14px}.modal-actions button.btn-primary{background:#1e5aa8;color:#fff;border-color:#1e5aa8}.sidebar{background:#fff;padding:16px;border-radius:8px;width:240px;float:left;margin:16px;box-shadow:0 1px 3px #0000000a}.sidebar button{display:block;width:100%;padding:12px;margin-bottom:8px;background:#f0f4f9;border:none;border-radius:4px;cursor:pointer;text-align:left;font-size:14px;transition:.15s}.sidebar button:hover{background:#e2ebf7}.sidebar button.active{background:#1e5aa8;color:#fff}.badge{background:#e53935;color:#fff;border-radius:10px;padding:2px 8px;font-size:11px;margin-left:6px}.announcement-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:16px}.announcement-card{background:#fff;padding:16px;border-radius:8px;cursor:pointer;transition:.2s;box-shadow:0 1px 3px #0000000a}.announcement-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.announcement-card .card-header{display:flex;justify-content:space-between;color:#888;font-size:12px;margin-bottom:8px}.announcement-card h3{color:#1e5aa8;font-size:15px;margin-bottom:6px}.announcement-card p{font-size:13px;color:#555}.avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-top:12px;border:3px solid #e4ebf2}.info-row{display:flex;padding:12px 0;border-bottom:1px solid #e4ebf2;align-items:center}.info-row label{width:220px;color:#666;font-size:14px}.info-row span{font-size:14px}.info-row button{margin-left:auto;padding:6px 12px;border:1px solid #1e5aa8;background:#fff;color:#1e5aa8;border-radius:4px;cursor:pointer;font-size:13px}.info-row button:hover{background:#e8f0fb}.ktp-list{list-style:none;padding:0 24px}.ktp-list li{background:#fff;margin-bottom:8px;border-radius:4px;padding:12px 16px;box-shadow:0 1px 2px #0000000a}.ktp-header{display:flex;justify-content:space-between;align-items:center;font-size:14px}.ktp-header button{padding:6px 12px;cursor:pointer;border:1px solid #1e5aa8;color:#1e5aa8;background:#fff;border-radius:4px;font-size:13px}.ktp-header button:hover{background:#e8f0fb}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.text-muted{color:#888;font-size:13px}.text-center{text-align:center}@media (max-width: 900px){.sidebar{width:100%;float:none;margin:8px 16px}.schedule-grid{grid-template-columns:repeat(3,1fr)}.top-bar nav{width:100%}}@media (max-width: 600px){.schedule-grid{grid-template-columns:repeat(2,1fr)}.auth-card{padding:24px 20px}h1{font-size:22px;padding:12px 16px}.data-table,.journal-table,.report-table{width:calc(100% - 32px);margin:0 16px;font-size:13px}}
