*{box-sizing:border-box;margin:0;padding:0}body{background:#f5f5f7;justify-content:center;min-height:100vh;font-family:Inter,sans-serif;display:flex}#root{flex-direction:column;width:100%;max-width:1024px;min-height:100vh;padding:1.5rem 1rem;display:flex}.header{border-bottom:3px solid #000;justify-content:center;margin-bottom:2rem;padding-bottom:.75rem;display:flex}.logo{color:#000;align-items:center;gap:.75rem;font-family:Space Mono,monospace;font-size:2rem;font-weight:700;display:flex}.logo img{object-fit:contain;width:36px;height:36px}.footer{text-align:center;text-transform:uppercase;letter-spacing:1.5px;border-top:2px solid #000;margin-top:2rem;padding-top:1rem;font-family:Space Mono,monospace;font-size:.8rem;font-weight:700}.footer a{color:#000;text-decoration:none;transition:color .2s}.footer a:hover{color:#003da5}.login-card{background:#fff;border:3px solid #000;width:100%;max-width:400px;margin:2rem auto;padding:2rem;box-shadow:6px 6px #003da5}.login-title{text-align:center;color:#000;justify-content:center;align-items:center;gap:.75rem;font-family:Space Mono,monospace;font-size:2.5rem;font-weight:700;display:flex}.login-title .accent{color:#003da5}.login-title img{object-fit:contain;width:40px;height:40px}.login-form label{text-transform:uppercase;letter-spacing:.5px;color:#000000b3;margin-bottom:.2rem;font-family:Space Mono,monospace;font-size:.7rem;font-weight:700;display:block}.login-form input{color:#000;background:#fff;border:3px solid #000;outline:none;width:100%;padding:.6rem .8rem;font-family:Space Mono,monospace;font-size:.9rem;font-weight:700}.login-form input:focus{box-shadow:inset 0 0 0 2px #003da5}.login-form .error{color:#c41230;background:#fee;border-left:4px solid #c41230;margin:.5rem 0;padding-top:.25rem;padding-bottom:.25rem;padding-left:.75rem;font-family:Space Mono,monospace;font-size:.85rem}.btn{text-transform:uppercase;color:#000;cursor:pointer;background:#fff;border:2px solid #000;padding:.7rem 1.2rem;font-family:Space Mono,monospace;font-size:.8rem;font-weight:700;transition:all .1s;display:inline-block;box-shadow:3px 3px #000}.btn-primary{color:#fff;background:#003da5;border-color:#003da5;width:100%;box-shadow:3px 3px #000}.btn-primary:hover{background:#00287a}.btn:active{transform:translate(2px,2px);box-shadow:1px 1px #000}.login-links{justify-content:space-between;margin-top:.75rem;display:flex}.login-links a{color:#003da5;border-bottom:2px solid #0000;font-family:Space Mono,monospace;font-size:.8rem;font-weight:700;text-decoration:none;transition:all .15s}.login-links a:hover{border-bottom-color:#003da5}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.dashboard-header h1{text-transform:uppercase;letter-spacing:2px;color:#333;font-family:Space Mono,monospace;font-size:1.2rem;font-weight:700}.dashboard-header .user-info{align-items:center;gap:1rem;display:flex}.dashboard-header .user-info span{font-family:Space Mono,monospace;font-size:.85rem;font-weight:700}.panel{background:#fff;border:3px solid #000;margin-bottom:1.5rem;padding:1.5rem;box-shadow:4px 4px #003da5}.panel form{flex-wrap:wrap;gap:.5rem;display:flex}.panel input{color:#000;background:#fff;border:3px solid #000;outline:none;flex:1;min-width:200px;padding:.6rem .8rem;font-family:Space Mono,monospace;font-size:.85rem;font-weight:700}.panel input:focus{box-shadow:inset 0 0 0 2px #003da5}.panel .btn{flex:none}.class-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;display:grid}.class-card{background:#fff;border:3px solid #000;padding:1.25rem;transition:transform .15s;box-shadow:4px 4px #003da5}.class-card:hover{transform:translateY(-3px)}.class-card h3{color:#000;font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700}.class-card p{color:#666;margin:.25rem 0 .75rem;font-family:Space Mono,monospace;font-size:.9rem}.class-card .actions{flex-wrap:wrap;gap:.5rem;display:flex}.class-card .actions .btn{flex:none;padding:.4rem .8rem;font-size:.7rem}.class-card .actions .btn-danger{color:#c41230;border-color:#c41230}.class-card .actions .btn-danger:hover{background:#fee}.student-list{padding:0;list-style:none}.student-list li{border-bottom:2px solid #000;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.student-list li:last-child{border-bottom:none}.student-list .student-name{font-family:Space Mono,monospace;font-weight:700}.student-list .student-tags{flex-wrap:wrap;gap:.4rem;display:flex}.student-list .tag{border-radius:2px;padding:.1rem .5rem;font-family:Space Mono,monospace;font-size:.7rem;font-weight:700}.tag-front{color:#1e40af;background:#dbeafe}.tag-back{color:#92400e;background:#fef3c7}.tag-must{color:#065f46;background:#d1fae5}.tag-cannot{color:#991b1b;background:#fee2e2}.student-list .actions{gap:.5rem;display:flex}.student-list .actions .btn{flex:none;padding:.2rem .6rem;font-size:.7rem}.seating-grid{grid-template-columns:repeat(5,1fr);gap:.5rem;min-width:600px;display:grid}.seat-cell{text-align:center;cursor:grab;background:#fff;border:3px solid #000;justify-content:center;align-items:center;min-height:70px;padding:.25rem;font-family:Space Mono,monospace;font-size:.8rem;font-weight:700;transition:background .15s;display:flex;box-shadow:2px 2px #000}.seat-cell.occupied{background:#f0f4ff;border-color:#003da5;box-shadow:2px 2px #003da5}.modal-overlay{z-index:50;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border:3px solid #000;width:100%;max-width:500px;padding:2rem;box-shadow:6px 6px #003da5}.modal-content h2{text-transform:uppercase;letter-spacing:2px;color:#333;margin-bottom:1rem;font-family:Space Mono,monospace;font-size:1.2rem;font-weight:700}.modal-content label{text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:.5rem;margin-bottom:.5rem;font-family:Space Mono,monospace;font-size:.8rem;font-weight:700;display:flex}.modal-content input[type=checkbox]{accent-color:#003da5;width:18px;height:18px}.modal-content input[type=number]{color:#000;background:#fff;border:3px solid #000;outline:none;width:100%;padding:.5rem;font-family:Space Mono,monospace;font-weight:700}.modal-content input[type=number]:focus{box-shadow:inset 0 0 0 2px #003da5}.modal-actions{gap:.5rem;margin-top:1.5rem;display:flex}.modal-actions .btn{flex:1}
