*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a2e;background:#f5f7fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.app-layout{min-height:100vh}.app-header{color:#fff;background:#2d3748;align-items:center;gap:2rem;padding:1rem 2rem;display:flex}.app-header h1{font-size:1.25rem}.app-nav{gap:1rem;display:flex}.app-nav a{color:#a0aec0;border-radius:4px;padding:.25rem .75rem;text-decoration:none}.app-nav a.active,.app-nav a:hover{color:#fff;background:#4a5568}.user-info{align-items:center;gap:1rem;margin-left:auto;font-size:.875rem;display:flex}.app-main{max-width:960px;margin:0 auto;padding:2rem}.btn-primary{color:#fff;cursor:pointer;background:#3182ce;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.875rem}.btn-primary:hover{background:#2c5282}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:#2d3748;cursor:pointer;background:#e2e8f0;border:none;border-radius:4px;padding:.5rem 1rem}.btn-delete{color:#e53e3e;cursor:pointer;background:0 0;border:none;font-size:1.25rem}.btn-signout{color:#a0aec0;cursor:pointer;background:0 0;border:1px solid #a0aec0;border-radius:4px;padding:.25rem .75rem}.btn-back{color:#3182ce;cursor:pointer;background:0 0;border:none;margin-bottom:1rem;font-size:.875rem}.login-page{background:#2d3748;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:8px;width:100%;max-width:400px;padding:2rem;box-shadow:0 4px 12px #00000026}.login-card h2{margin-bottom:.5rem}.login-card p{color:#718096;margin-bottom:1.5rem;font-size:.875rem}.login-card form{flex-direction:column;gap:.75rem;display:flex}.login-card input{border:1px solid #e2e8f0;border-radius:4px;padding:.75rem;font-size:1rem}.login-card button{color:#fff;cursor:pointer;background:#3182ce;border:none;border-radius:4px;padding:.75rem;font-size:1rem}.login-card button:disabled{opacity:.6}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.hint{color:#718096;margin-bottom:1rem;font-size:.875rem}.empty-state{color:#a0aec0;text-align:center;padding:2rem;font-style:italic}.loading{text-align:center;color:#718096;padding:2rem}.error-msg{color:#c53030;background:#fed7d7;border-radius:4px;margin-bottom:1rem;padding:.75rem}.add-form{margin-bottom:2rem}.add-form textarea{resize:vertical;border:1px solid #e2e8f0;border-radius:4px;width:100%;margin-bottom:.5rem;padding:.75rem;font-family:inherit;font-size:1rem}.add-form button{color:#fff;cursor:pointer;background:#3182ce;border:none;border-radius:4px;padding:.5rem 1.5rem}.student-list h3{color:#4a5568;margin-bottom:.75rem}.student-item{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.session-list{flex-direction:column;gap:.5rem;display:flex}.session-card{cursor:pointer;background:#fff;border-radius:6px;justify-content:space-between;align-items:center;padding:1rem;display:flex;box-shadow:0 1px 3px #00000014}.session-card:hover{box-shadow:0 2px 8px #0000001f}.session-info{flex:1;align-items:center;gap:1.5rem;display:flex}.session-date{color:#718096;font-size:.875rem}.session-count{color:#a0aec0;font-size:.875rem}.session-meta{gap:1rem;margin-bottom:1.5rem;display:flex}.session-meta input{border:1px solid #e2e8f0;border-radius:4px;flex:1;padding:.75rem;font-size:1rem}.records-table{margin-bottom:1.5rem}.record-header{color:#4a5568;border-bottom:2px solid #e2e8f0;grid-template-columns:2fr 1fr 1fr 2fr;gap:.5rem;padding:.5rem;font-size:.875rem;font-weight:600;display:grid}.record-row{border-bottom:1px solid #f0f0f0;grid-template-columns:2fr 1fr 1fr 2fr;align-items:center;gap:.5rem;padding:.5rem;display:grid}.record-row select,.record-row input{border:1px solid #e2e8f0;border-radius:4px;padding:.4rem;font-size:.875rem}.form-actions{justify-content:flex-end;gap:1rem;display:flex}.badge{border-radius:3px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.badge-present{color:#22543d;background:#c6f6d5}.badge-absent{color:#742a2a;background:#fed7d7}.participation-stars{color:#d69e2e}.comment{color:#718096;font-size:.875rem}.admin-page h3{color:#4a5568;margin-top:2rem;margin-bottom:.75rem}.add-user-form{gap:.75rem;margin-bottom:1.5rem;display:flex}.add-user-form input{border:1px solid #e2e8f0;border-radius:4px;flex:1;padding:.75rem;font-size:1rem}.user-list{flex-direction:column;gap:.5rem;display:flex}.user-item{background:#fff;border-radius:4px;justify-content:space-between;align-items:center;padding:.75rem;display:flex;box-shadow:0 1px 3px #00000014}.user-email{font-weight:500}.success-msg{color:#22543d;background:#c6f6d5;border-radius:4px;margin-bottom:1rem;padding:.75rem}.badge-confirmed{color:#22543d;background:#c6f6d5}.badge-force_change_password{color:#744210;background:#fefcbf}.student-records{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.student-record-card{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 1px 4px #00000014}.student-record-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:1rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.student-record-fields{flex-direction:column;gap:.5rem;display:flex}.field-row{align-items:center;gap:.75rem;display:flex}.field-row label{color:#4a5568;flex-shrink:0;width:100px;font-size:.875rem;font-weight:500}.field-row select,.field-row input{border:1px solid #e2e8f0;border-radius:4px;flex:1;padding:.4rem .5rem;font-size:.875rem}.badge-late{color:#744210;background:#fefcbf}.saave-details{padding-top:.5rem}.saave-item{color:#2d3748;padding:.25rem 0;font-size:.875rem}.saave-item.empty{color:#a0aec0;font-style:italic}.saave-label{color:#4a5568;font-weight:600}.category-block{border-left:3px solid #e2e8f0;margin:.5rem 0;padding-left:.75rem}.category-block .field-row{margin-bottom:.35rem}.note-label{color:#a0aec0!important;font-size:.8rem!important;font-weight:400!important}.saave-rating{color:#3182ce;font-weight:500}.saave-note{color:#718096}
