body{font-family:sans-serif;margin:0;background-color:#f0f2f5;color:#333}.page-container{max-width:95%;margin:0 auto;padding:20px;box-sizing:border-box}.top-bar{display:flex;flex-direction:column;align-items:center;padding:15px 20px;background-color:#fff;border-bottom:1px solid #dee2e6;margin-bottom:25px;box-shadow:0 2px 4px #0000000d;border-radius:8px;width:100%;box-sizing:border-box}.header-logo{max-height:120px;max-width:100%;height:auto;width:auto;object-fit:contain;margin-bottom:10px}.top-bar-upper{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:15px}.district-logo{max-height:60px;width:auto;margin-left:10px}.header-controls{display:flex;align-items:center;gap:15px;margin-right:10px}.header-controls label{font-weight:700;margin-right:5px}.header-controls select{padding:8px 12px;border-radius:4px;border:1px solid #ced4da;font-size:.95em}h1{color:#333;text-align:center;margin-top:0;padding-bottom:10px;margin-bottom:10px;width:100%;border-bottom:1px solid #eee;font-size:2.2em;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.school-header{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:10px;width:100%}.school-logo{max-height:45px;max-width:90px;height:auto;width:auto}.school-name-title{font-size:1.4em;color:#444;margin:0}.file-upload-container{text-align:center;padding:60px 40px;border:3px dashed #cbd5e1;border-radius:20px;background:#fff;position:relative;margin:30px 0;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px #0000000d;overflow:hidden}.file-upload-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease;z-index:-1;border-radius:17px}.file-upload-container:after{content:"";position:absolute;top:3px;left:3px;right:3px;bottom:3px;background:#fff;border-radius:17px;z-index:-1;transition:background .3s ease}.file-upload-container:hover{transform:translateY(-5px);box-shadow:0 20px 40px #667eea66;border-color:transparent}.file-upload-container:hover:before{opacity:1}.file-upload-container:hover:after{background:linear-gradient(135deg,#fffffff2,#f8fafcf2)}.file-upload-container.drag-over{transform:translateY(-5px) scale(1.02);box-shadow:0 25px 50px #667eea80;border-color:transparent}.file-upload-container.drag-over:before{opacity:1;animation:pulse .8s infinite}.file-upload-container.drag-over:after{background:linear-gradient(135deg,#fffffff2,#f8fafcf2)}@keyframes pulse{0%{opacity:1}50%{opacity:.8}to{opacity:1}}.file-upload-text{font-size:1.4em;font-weight:600;color:#374151;margin-bottom:15px;transition:all .3s ease}.file-upload-container:hover .file-upload-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.file-upload-subtext{font-size:1em;color:#64748b;margin-bottom:20px;transition:color .3s ease}.file-upload-container:hover .file-upload-subtext{color:#475569}.upload-icon{font-size:3em;margin-bottom:20px;display:block;color:#9ca3af;animation:float 3s ease-in-out infinite;transition:all .3s ease}.file-upload-container:hover .upload-icon{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.upload-features{display:flex;justify-content:center;gap:30px;margin-top:25px;flex-wrap:wrap}.upload-feature{display:flex;align-items:center;gap:8px;color:#64748b;font-size:.9em;transition:color .3s ease}.file-upload-container:hover .upload-feature{color:#475569}.upload-feature-icon{width:16px;height:16px;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7em;font-weight:700}.file-input{display:none}.download-container{width:100%;text-align:right;padding:0 0 15px;box-sizing:border-box;margin-top:10px;margin-bottom:10px}.download-button{display:inline-block;padding:8px 15px;background-color:#28a745;color:#fff;text-decoration:none;border-radius:5px;font-size:.9em;border:none;cursor:pointer;transition:background-color .2s}.download-button:hover{background-color:#218838}.grade-title-area{text-align:center;position:relative;margin-bottom:15px;border-bottom:2px solid #007bff;padding-top:10px;padding-bottom:10px}.grade-main-title{color:#007bff;margin:0;font-size:1.8em;display:inline-block}.grade-action-buttons{position:absolute;left:0;top:50%;transform:translateY(-50%)}.grade-action-buttons button{padding:6px 12px;font-size:.9em;border-radius:4px;border:1px solid #ccc;cursor:pointer;margin-right:8px;transition:background-color .2s,border-color .2s}.save-button{background-color:#28a745;color:#fff;border-color:#28a745}.save-button:hover{background-color:#218838;border-color:#1e7e34}.reset-button{background-color:#ffc107;color:#333;border-color:#ffc107}.reset-button:hover{background-color:#e0a800;border-color:#d39e00}.save-button.saving{background-color:#1f903c;cursor:default}.grade-header-summary-flex-container{position:relative;width:100%;margin-bottom:20px;padding-top:5px;padding-bottom:5px}.color-legend{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:.8em;padding:5px 0;position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:1;max-width:60%;margin-top:1.5em}.grade-summary-overall{text-align:center;width:100%;font-size:1em;color:#555}.legend-item{display:flex;align-items:center}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;border:1px solid #555}.el-legend-dot{background-color:#f7bec0}.iep-legend-dot{background-color:#fcefb6}.mtss-legend-dot{background-color:#b6e1fc}.el-iep-legend-dot{background-color:#f2c396}.el-mtss-legend-dot{background-color:#bba1e6}.iep-mtss-legend-dot{background-color:#a6d692}.el-iep-mtss-legend-dot{background-color:#c0c2c0}.columns-wrapper{display:flex;width:100%;gap:20px;margin-bottom:30px}.left-column-content{width:60%}.right-column-content{width:40%}.class-section-left{border:1px solid #e0e0e0;padding:15px;margin-bottom:20px;border-radius:8px;background-color:#fdfdfd;box-shadow:0 2px 4px #0000000d;height:270px;overflow-y:auto;box-sizing:border-box}.class-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}h3{color:#343a40;margin-top:0;margin-bottom:0;font-size:1.3em;flex-grow:1}.teacher-input-label{font-size:.85em;margin-left:15px;color:#555}.teacher-input{margin-left:5px;padding:3px 5px;border:1px solid #ccc;border-radius:3px;font-size:.85em;width:100px}.stat-value{font-weight:700;color:#0056b3}.stat-label{font-style:italic;color:#555}.class-stat-line{font-size:.9em;color:#555;margin-top:3px}.student-ids-list{list-style-type:none;padding-left:0;display:flex;flex-wrap:wrap;gap:5px;min-height:30px;border:1px dashed transparent;transition:background-color .2s,border-color .2s}.student-ids-list li{border:1px solid #ccc;padding:3px 8px;border-radius:12px;font-size:.9em;margin-bottom:5px;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;color:#333}.student-el{background-color:#f7bec0;border-color:#d1a2a4;color:#5c3a3b}.student-iep{background-color:#fcefb6;border-color:#d6ca9a;color:#60583e}.student-mtss{background-color:#b6e1fc;border-color:#9ac2d6;color:#3e5660}.student-el-iep{background-color:#f2c396;border-color:#cea781;color:#5c4331}.student-el-mtss{background-color:#bba1e6;border-color:#9f88c3;color:#403256}.student-iep-mtss{background-color:#a6d692;border-color:#8cb87c;color:#37502f}.student-el-iep-mtss{background-color:#c0c2c0;border-color:#a4a6a4;color:#424342}.grade-4-student{border-color:#ffd8a8;color:#854d0e}.grade-5-student{border-color:#a3cfbb;color:#0f5132}.error{color:red;font-weight:700;text-align:center;padding:20px}.warning{color:#856404;font-weight:400;text-align:center;padding:10px;background-color:#fff3cd;border:1px solid #ffeeba;border-radius:5px;margin-bottom:15px}.class-stats-box{display:flex;justify-content:space-between;gap:10px;border:1px solid #d0d0d0;background-color:#fdfdfd;padding:15px;margin-bottom:20px;border-radius:8px;box-shadow:0 2px 4px #0000000d;font-size:.9em;height:270px;box-sizing:border-box}.stats-column{padding:0 5px;overflow-y:auto;max-height:100%;flex-grow:1;flex-shrink:1}.class-stats-box.has-nwea-bands .stats-column-general{flex-basis:60%;flex-grow:0}.class-stats-box.has-nwea-bands .stats-column-nwea-reading-bands,.class-stats-box.has-nwea-bands .stats-column-k2-reading-levels,.class-stats-box.has-nwea-bands .stats-column-nwea-math-bands{flex-basis:40%;flex-grow:0}.class-stats-box .stats-column-general:only-child{flex-basis:100%}.class-stats-box h4{margin-top:0;margin-bottom:10px;font-size:1.05em;color:#495057;border-bottom:1px solid #eee;padding-bottom:5px}.class-stats-box p{margin:4px 0;line-height:1.4}.class-stats-box .stat-label{display:inline-block;min-width:100px;font-size:.95em}.class-stats-box .stat-value{font-weight:700;font-size:.95em}.class-type-label{font-weight:700;margin-left:8px;font-size:.9em}.juntos-label{color:#28a745}.dragging{opacity:.4;border:2px dashed #007bff;transform:scale(.95)}.drag-over{background-color:#e0f0ff!important;border-color:#007bff!important}.loading{text-align:center;padding:40px;font-size:1.1em;color:#666}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}
