/*! tailwindcss v4.0.9 | MIT License | https://tailwindcss.com */.static{position:static}.container{width:100%}.grid{display:grid}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.layout-controls{background-color:#f5f5f5;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:15px;display:flex}.size-controls{gap:15px;display:flex}.size-controls label{align-items:center;gap:8px;font-weight:500;display:flex}.size-controls input{text-align:center;border:1px solid #ddd;border-radius:4px;width:60px;padding:8px}.generate-button{color:#fff;cursor:pointer;background-color:#4caf50;border:none;border-radius:4px;padding:10px 20px;font-weight:700;transition:background-color .3s}.generate-button:disabled{cursor:not-allowed;background-color:#ccc}.error-message{color:#c62828;text-align:center;background-color:#ffebee;border-radius:4px;margin-bottom:20px;padding:10px}.layout-container{grid-template-columns:1fr 2fr 1fr;gap:20px;display:grid}.left-panel,.right-panel,.center-panel{background-color:#fff;border-radius:8px;padding:15px;box-shadow:0 2px 4px #0000001a}.student-list{flex-direction:column;height:100%;display:flex}.student-list h2{color:#333;border-bottom:2px solid #eee;margin-top:0;padding-bottom:10px}.add-student{margin-bottom:15px;display:flex}.add-student input{border:1px solid #ddd;border-radius:4px 0 0 4px;flex:1;padding:8px}.add-student button{color:#fff;cursor:pointer;background-color:#2196f3;border:none;border-radius:0 4px 4px 0;padding:8px 15px}.students{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.student-item{background-color:#f9f9f9;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:5px;padding:8px 10px;display:flex}.remove-button{color:#999;cursor:pointer;background:0 0;border:none;font-size:18px}.student-count{text-align:right;color:#666;margin-top:15px;font-size:.9em}.constraint-panel{flex-direction:column;height:100%;display:flex}.constraint-panel h2{color:#333;border-bottom:2px solid #eee;margin-top:0;padding-bottom:10px}.add-constraint{background-color:#f5f5f5;border-radius:4px;flex-direction:column;gap:10px;margin-bottom:15px;padding:10px;display:flex}.constraint-type,.student-selection{flex-direction:column;gap:5px;display:flex}.constraint-type label,.student-selection label{color:#555;font-weight:500}.constraint-type select,.student-selection select{border:1px solid #ddd;border-radius:4px;padding:8px}.add-constraint button{color:#fff;cursor:pointer;background-color:#673ab7;border:none;border-radius:4px;margin-top:10px;padding:8px 15px}.add-constraint button:disabled{cursor:not-allowed;background-color:#d3c6e9}.constraints-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.constraint-item{background-color:#f9f9f9;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:5px;padding:8px 10px;display:flex}.classroom-grid-container{flex-direction:column;height:100%;display:flex}.classroom-grid-container h2{color:#333;text-align:center;border-bottom:2px solid #eee;margin-top:0;padding-bottom:10px}.teacher-desk{text-align:center;background-color:#e0e0e0;border-radius:4px;margin-bottom:20px;padding:10px;font-weight:700}.classroom-grid{gap:10px;height:100%;display:grid}.seat{text-align:center;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;padding:10px;transition:transform .2s;display:flex}.seat:hover{z-index:1;transform:scale(1.05)}.student-name{margin-bottom:5px;font-weight:700}.seat-coordinates{color:#888;font-size:.8em}.no-seating-plan{text-align:center;color:#888;background-color:#f9f9f9;border:2px dashed #ddd;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:30px;display:flex}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}.classroom-grid-container{display:flex;flex-direction:column;height:100%}.classroom-grid-container h2{margin-top:0;color:#333;border-bottom:2px solid #eee;padding-bottom:10px;text-align:center}.teacher-desk{background-color:#e0e0e0;padding:10px;text-align:center;font-weight:700;margin-bottom:20px;border-radius:4px}.classroom-grid{display:grid;gap:10px;height:100%}.seat{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:10px;border-radius:4px;text-align:center;transition:transform .2s}.seat.occupied{background-color:#e8f5e9;border:2px solid #81c784}.seat.empty{background-color:#f5f5f5;border:2px dotted #ccc}.seat:hover{transform:scale(1.05);z-index:1}.student-name{font-weight:700;margin-bottom:5px}.seat-coordinates{font-size:.8em;color:#888}.empty-seat{color:#aaa;font-style:italic}.no-seating-plan{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;text-align:center;color:#888;padding:30px;background-color:#f9f9f9;border-radius:8px;border:2px dashed #ddd}@media (max-width: 768px){.classroom-grid{gap:5px}.seat{padding:5px;font-size:.9em}.seat-coordinates{font-size:.7em}}.constraint-panel{display:flex;flex-direction:column;height:100%}.constraint-panel h2{margin-top:0;color:#333;border-bottom:2px solid #eee;padding-bottom:10px}.add-constraint{display:flex;flex-direction:column;gap:10px;margin-bottom:15px;padding:10px;background-color:#f5f5f5;border-radius:4px}.constraint-type,.student-selection{display:flex;flex-direction:column;gap:5px}.constraint-type label,.student-selection label{font-weight:500;color:#555}.constraint-type select,.student-selection select{padding:8px;border:1px solid #ddd;border-radius:4px}.add-constraint button{padding:8px 15px;background-color:#673ab7;color:#fff;border:none;border-radius:4px;cursor:pointer;margin-top:10px}.add-constraint button:hover{background-color:#5e35b1}.add-constraint button:disabled{background-color:#d3c6e9;cursor:not-allowed}.constraints-list{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.constraint-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;margin-bottom:5px;background-color:#f9f9f9;border-radius:4px}.constraint-item:hover{background-color:#f0f0f0}.constraint-item .remove-button{background:none;border:none;font-size:18px;color:#999;cursor:pointer}.constraint-item .remove-button:hover{color:#f44336}.student-list{display:flex;flex-direction:column;height:100%}.student-list h2{margin-top:0;color:#333;border-bottom:2px solid #eee;padding-bottom:10px}.add-student{display:flex;margin-bottom:15px}.add-student input{flex:1;padding:8px;border:1px solid #ddd;border-radius:4px 0 0 4px}.add-student button{padding:8px 15px;background-color:#2196f3;color:#fff;border:none;border-radius:0 4px 4px 0;cursor:pointer}.add-student button:hover{background-color:#0b7dda}.students{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.student-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;margin-bottom:5px;background-color:#f9f9f9;border-radius:4px}.student-item:hover{background-color:#f0f0f0}.remove-button{background:none;border:none;font-size:18px;color:#999;cursor:pointer}.remove-button:hover{color:#f44336}.empty-list{color:#888;text-align:center;padding:20px 0}.student-count{margin-top:15px;text-align:right;color:#666;font-size:.9em}.student-item.dragging{opacity:.5}.student-item.drop-target{background-color:#992e0433;border:2px dashed rgb(182,45,3)}@media (max-width: 768px){.add-student{flex-direction:column}.add-student input{border-radius:4px;margin-bottom:5px}.add-student button{border-radius:4px}}.classroom-layout{max-width:1200px;margin:0 auto;padding:20px;font-family:Roboto,sans-serif}.classroom-layout h1{text-align:center;color:#333;margin-bottom:20px}.layout-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:15px;background-color:#f5f5f5;border-radius:8px}.size-controls{display:flex;gap:15px}.size-controls label{display:flex;align-items:center;gap:8px;font-weight:500}.size-controls input{width:60px;padding:8px;border:1px solid #ddd;border-radius:4px;text-align:center}.generate-button{padding:10px 20px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:700;transition:background-color .3s}.generate-button:hover{background-color:#45a049}.generate-button:disabled{background-color:#ccc;cursor:not-allowed}.error-message{background-color:#ffebee;color:#c62828;padding:10px;border-radius:4px;margin-bottom:20px;text-align:center}.layout-container{display:grid;grid-template-columns:1fr 2fr 1fr;gap:20px;margin-bottom:40px}.left-panel,.right-panel,.center-panel,.bottom-panel{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:15px}@media (max-width: 992px){.layout-container{grid-template-columns:1fr 1fr}.center-panel{grid-column:span 2;order:-1}}@media (max-width: 768px){.layout-controls{flex-direction:column;gap:15px}.layout-container{grid-template-columns:1fr}.left-panel,.right-panel,.center-panel{grid-column:span 1}.center-panel{order:-1}}.bottom-panel{margin-top:40px;background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 5px #0000001a;padding:20px 30px}.bottom-panel h2{margin-top:0;color:#333;border-bottom:1px solid #e0e0e0;padding-bottom:10px;margin-bottom:15px}.bottom-panel ul{padding-left:20px;margin:0}.bottom-panel li{margin-bottom:10px;line-height:1.5}.bottom-panel li:last-child{margin-bottom:0}.bottom-panel strong{color:#1a73e8}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f2f5;color:#333}.app{min-height:100%;width:100%;padding:20px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.7}input,select{font-family:inherit;font-size:16px}h1,h2,h3,h4,h5,h6{margin-bottom:.5em}@media (max-width: 768px){.app{padding:10px}}
