@charset "UTF-8";
:root{--ink:#16333b;--muted:#637980;--teal:#154d58;--teal-2:#236673;--accent:#edbd55;--bg:#f3f6f7;--line:#dce5e7;--ser:#08776d;--saber:#315dac;--hacer:#986419;--decidir:#765295;--radius:12px;--shadow:0 14px 38px #16333b12;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{color:var(--ink);width:100%;background:#fff;border:1px solid #cbd8dc;border-radius:8px;padding:10px 12px;min-height:44px}input:focus,select:focus,textarea:focus{outline:3px solid #c0dde3;outline-offset:1px;border-color:var(--teal-2)}:focus-visible{outline:3px solid #68a9b6;outline-offset:3px}textarea{resize:vertical;min-height:100px}label{font-size:.875rem;font-weight:600;display:block}label input,label select,label textarea{display:block;margin-top:7px}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--teal);margin:0}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,"Times New Roman",serif;font-size:2.25rem;font-weight:500;line-height:1.2;letter-spacing:-.7px;margin-bottom:9px}h2{font-size:1.2rem;margin-bottom:12px;line-height:1.35}h3{font-size:1rem;margin-bottom:10px}p{margin-bottom:16px}small{font-size:.8125rem}table{border-collapse:collapse;width:100%;font-size:.875rem}th{text-align:left;font-weight:600;background:#f6f9fa;color:#576e75;padding:13px 16px;white-space:nowrap;border-bottom:1px solid var(--line)}td{padding:14px 16px;border-bottom:1px solid #e7eef0;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdfe}.table-scroll{overflow:auto;width:100%}.table-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;min-height:43px;border-radius:8px;border:1px solid #cddbdd;font-size:.875rem;font-weight:600;color:var(--teal);background:#fff;text-decoration:none;white-space:nowrap}.btn:hover{background:#edf5f6;text-decoration:none}.btn.primary{background:var(--teal);color:#fff;border-color:var(--teal)}.btn.primary:hover{background:#0d3d47}.btn.gold{background:var(--accent);border-color:var(--accent);color:#293b3c}.btn.danger{color:#a53d3d;border-color:#e6bebe}.btn.small{padding:7px 11px;min-height:35px;font-size:.8125rem}.btn.text{border-color:transparent;background:transparent;padding:7px 9px}.btn.wide{width:100%}.btn svg,.nav-item svg,.icon-btn svg{width:19px;height:19px;flex-shrink:0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;background:transparent;color:var(--muted);border-radius:8px}.icon-btn:hover{background:#edf4f5}.eyebrow{font-size:.75rem;letter-spacing:1.6px;font-weight:700;margin-bottom:16px;color:var(--teal-2)}.muted,.hint{color:var(--muted)}.hint{font-size:.8125rem;margin-top:10px;font-weight:400}.error-banner,.success-banner,.info-banner{border-radius:9px;padding:12px 16px;font-size:.875rem;margin:16px 0}.error-banner{color:#9d3434;background:#fff0f0;border:1px solid #f1cdcd}.success-banner{color:#125f4c;background:#eaf7f0;border:1px solid #c9e6d9}.info-banner{color:#325864;background:#edf5fa;border:1px solid #d0e3ed}[hidden]{display:none!important}.brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:1.45rem;letter-spacing:-.8px;color:var(--teal);line-height:1.1;text-decoration:none!important}.brand small{display:block;letter-spacing:1.6px;font-weight:500;font-size:.75rem;margin-top:7px}.brand-mark{height:42px;width:42px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:11px;background:var(--teal);color:#fff;font-family:Georgia,serif;font-size:1.85rem;font-weight:500;position:relative}.brand-mark:after{content:"";width:7px;height:7px;background:var(--accent);border-radius:50%;position:absolute;right:5px;top:5px}.badge{display:inline-flex;align-items:center;border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:600;white-space:nowrap;background:#edf2f3;color:#557079}.badge.success{color:#157459;background:#e6f4ed}.badge.warning{color:#8e661b;background:#fcf3db}.badge.blue{color:#345e9c;background:#e9f0fb}.badge.purple{color:#765295;background:#f1ecf8}.tag{padding:4px 8px;border:1px solid var(--line);border-radius:5px;font-size:.75rem;color:var(--muted)}.avatar{width:37px;height:37px;border-radius:10px;background:#e0edef;color:var(--teal);display:inline-flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:700;flex-shrink:0}.person{display:flex;align-items:center;gap:10px}.person .avatar{width:33px;height:33px;border-radius:8px;background:#edf2f4}.person strong{display:block;font-size:.875rem}.person small{display:block;color:var(--muted);margin-top:2px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading p{margin:7px 0 0;color:var(--muted);font-size:.9375rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.section-heading h2{margin:0}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}.empty-state{padding:45px 24px;text-align:center;color:var(--muted);background:#fff}.empty-state svg{width:32px;height:32px;color:#93afb7;margin-bottom:10px}.empty-state h3{color:var(--ink);margin-bottom:6px}.empty-state p{font-size:.875rem;margin-bottom:16px}.loading-state{display:grid;place-items:center;min-height:250px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .span-2{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.checkbox-row{display:flex;align-items:center;gap:10px;font-size:.875rem;font-weight:400}.checkbox-row input{margin:0}.field-description{font-size:.8125rem;font-weight:400;color:var(--muted);margin-top:5px}.filters{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-bottom:22px}.filters label{min-width:150px;flex:1}.filters label.grow{flex:2}.search-field{position:relative}.search-field input{padding-left:37px}.search-field svg{position:absolute;left:12px;bottom:13px;width:18px;height:18px;color:#78929a}
.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:244px;background:#fff;border-right:1px solid var(--line);padding:30px 20px 22px;display:flex;flex-direction:column}.sidebar .brand{padding:0 6px}.school-caption{font-size:.8125rem;color:var(--muted);padding:21px 8px;margin-bottom:13px;border-bottom:1px solid var(--line);line-height:1.5}.nav-caption{font-size:.75rem;letter-spacing:1.5px;color:#889da4;font-weight:700;padding:7px 12px 13px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:transparent;padding:12px 13px;font-size:.875rem;font-weight:500;color:#587079;border-radius:8px;margin-bottom:5px;text-decoration:none}.nav-item:hover{color:var(--teal);background:#f2f7f8;text-decoration:none}.nav-item.active{background:#e5f0f2;color:#124d58;font-weight:700}.nav-item .nav-count{margin-left:auto;background:var(--teal);color:#fff;border-radius:5px;padding:1px 6px;font-size:.75rem}.sidebar-bottom{margin-top:auto;padding-top:28px}.term-card{padding:16px;margin-bottom:20px;background:#f4f8f9;border-radius:10px;border-left:3px solid var(--accent)}.term-card span{font-size:.75rem;letter-spacing:1px;color:var(--muted);display:block}.term-card strong{display:block;font-family:Georgia,serif;font-size:1.9rem;color:var(--teal);line-height:1.5}.term-card small{font-size:.75rem;color:var(--muted)}.main-shell{margin-left:244px;width:calc(100% - 244px);min-width:0}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:14px}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:.8125rem;color:var(--muted)}.breadcrumb strong{color:var(--ink);font-weight:500}.topbar-right{display:flex;align-items:center;gap:23px}.notification-btn{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);color:var(--muted);padding:7px 11px;border-radius:8px;font-size:.8125rem;min-height:36px}.notification-btn span{background:var(--teal);color:#fff;border-radius:4px;min-width:19px;font-size:.75rem}.user-block{display:flex;align-items:center;gap:10px;padding-left:20px;border-left:1px solid var(--line)}.user-block strong{font-size:.8125rem;display:block;font-weight:600}.user-block small{font-size:.75rem;color:var(--muted);display:block}.mobile-toggle{display:none}.workspace{padding:34px 36px 38px;min-height:calc(100vh - 136px)}.app-footer{display:flex;justify-content:space-between;gap:12px;font-size:.75rem;color:#82959b;padding:0 36px 22px}.greeting-meta{display:flex;align-items:center;gap:10px;margin-bottom:9px;font-size:.8125rem;color:var(--muted)}.dashboard-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:27px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 23px;position:relative}.stat-card .stat-label{color:var(--muted);font-size:.875rem}.stat-card .stat-number{font-family:Georgia,serif;font-size:2.8rem;line-height:1.3;margin-top:7px;color:var(--ink)}.stat-card small{display:block;color:var(--muted);font-size:.75rem}.stat-icon{position:absolute;right:22px;top:22px;border-radius:10px;padding:10px;background:#e9f1f3;color:var(--teal)}.stat-icon svg{width:21px;height:21px;display:block}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:23px}.criteria-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px;padding-top:19px;border-top:1px solid var(--line)}.criterion-info{border-left:3px solid var(--ser);padding-left:10px}.criterion-info strong{font-size:.75rem;color:var(--ser);letter-spacing:.5px;display:block}.criterion-info small{font-size:.75rem;color:var(--muted);display:block;margin-top:4px}.criterion-info.saber{border-color:var(--saber)}.criterion-info.saber strong{color:var(--saber)}.criterion-info.hacer{border-color:var(--hacer)}.criterion-info.hacer strong{color:var(--hacer)}.criterion-info.decidir{border-color:var(--decidir)}.criterion-info.decidir strong{color:var(--decidir)}.event-mini{display:flex;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.event-mini:last-child{border-bottom:0;padding-bottom:0}.date-tile{background:#eef4f6;color:var(--teal);border-radius:8px;min-width:49px;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.date-tile strong{font-family:Georgia,serif;font-size:1.55rem}.date-tile small{font-size:.75rem;text-transform:uppercase;margin-top:4px}.event-mini h3{font-size:.875rem;margin-bottom:5px}.event-mini p{font-size:.75rem;color:var(--muted);margin:3px 0}.quick-start{border:1px dashed #9dbcc4;padding:20px;border-radius:var(--radius);background:#edf5f7;margin-bottom:22px}.quick-start h2{font-size:1.1rem}.quick-start p{font-size:.875rem;color:var(--muted)}
.gradebook-toolbar{background:#fff;border:1px solid var(--line);padding:18px 21px;border-radius:var(--radius) var(--radius) 0 0;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.gradebook-toolbar .toolbar-label{font-size:.8125rem;color:var(--muted)}.gradebook-toolbar strong{color:var(--ink);font-size:.875rem}.criteria-legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.criterion-chip{display:flex;align-items:center;gap:8px;font-size:.75rem;font-weight:600;padding:5px 9px;border-radius:6px;background:#e8f4f1;color:var(--ser)}.criterion-chip.saber{color:var(--saber);background:#eaf0fc}.criterion-chip.hacer{color:var(--hacer);background:#fcf3df}.criterion-chip.decidir{color:var(--decidir);background:#f3edfa}.criterion-chip span{font-size:.75rem;font-weight:500}.gradebook-scroll{border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius) var(--radius);overflow:auto;background:#fff;max-height:65vh}.gradebook-table{min-width:850px;border-collapse:separate;border-spacing:0;table-layout:fixed}.gradebook-table th,.gradebook-table td{padding:0;border-right:1px solid #e2e9eb;border-bottom:1px solid #e2e9eb}.gradebook-table thead th{position:sticky;top:0;z-index:12;text-align:center;background:#edf5f6;height:38px;font-size:.75rem}.gradebook-table thead tr:nth-child(2) th{top:38px;height:67px;background:#f8fafb;font-size:.75rem;font-weight:500}.gradebook-table .student-head{width:248px;min-width:248px;left:0;z-index:15;text-align:left;padding:12px 17px;background:#f6f9fa}.gradebook-table .student-cell{position:sticky;left:0;z-index:9;background:#fff;padding:13px 13px 13px 17px;height:53px}.gradebook-table .student-cell .student-number{font-size:.75rem;color:#81979e;width:22px;display:inline-block}.gradebook-table .student-cell .student-name{font-weight:600;font-size:.8125rem}.gradebook-table .grade-column{width:94px;min-width:94px}.gradebook-table .criterion-head.ser{background:#e2f3ed;color:var(--ser);border-top:3px solid var(--ser)}.gradebook-table .criterion-head.saber{background:#e9f0fd;color:var(--saber);border-top:3px solid var(--saber)}.gradebook-table .criterion-head.hacer{background:#fcf1d9;color:var(--hacer);border-top:3px solid var(--hacer)}.gradebook-table .criterion-head.decidir{background:#f2eafb;color:var(--decidir);border-top:3px solid var(--decidir)}.gradebook-table .assessment-heading{width:94px;height:66px;padding:8px 7px;font-size:.75rem;white-space:normal;line-height:1.3;overflow-wrap:anywhere}.assessment-heading button{border:0;background:transparent;color:var(--muted);font-size:.75rem;padding:3px;cursor:pointer;display:inline}.assessment-heading small{display:block;font-size:.75rem;color:var(--muted);margin-top:3px}.gradebook-table td input.grade-input{border:0;outline:none;border-radius:0;text-align:center;width:100%;height:53px;min-height:53px;background:transparent;padding:6px;font-size:.875rem;box-shadow:none}.gradebook-table td input.grade-input:focus{box-shadow:inset 0 0 0 2px var(--teal-2);background:#edf7f9}.gradebook-table td input.grade-input.dirty{background:#fff8e6}.gradebook-table td input.grade-input.invalid{background:#fce8e8;box-shadow:inset 0 0 0 2px #d26e6e}.gradebook-table .criterion-average{width:72px;min-width:72px;text-align:center;font-weight:600;font-size:.8125rem;background:#f6faf9}.gradebook-table .final-column{width:92px;min-width:92px;background:#f1f6f7;text-align:center;font-size:.875rem;font-weight:700}.gradebook-table .final-column small{display:block;font-size:.75rem;font-weight:400;color:var(--muted)}.gradebook-table .comment-column{width:240px;min-width:240px}.gradebook-table input.comment-input{border:0;border-radius:0;height:53px;min-height:53px;font-size:.8125rem;padding:9px 12px;background:transparent}.gradebook-table input.comment-input:focus{box-shadow:inset 0 0 0 2px var(--teal-2);outline:none}.gradebook-table tbody tr:hover .student-cell{background:#f6fafb}.gradebook-table tbody tr:hover td{background-color:#f8fbfc}.gradebook-table .add-evaluation{width:110px;text-align:center;padding:8px;color:#90a4ac;font-size:.75rem}.gradebook-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.8125rem;color:var(--muted);margin-top:13px}.gradebook-foot p{margin:0;max-width:660px}.save-status{display:flex;align-items:center;gap:8px;font-size:.8125rem;white-space:nowrap;color:var(--muted)}.save-status.pending{color:#9a711e}.gradebook-search{max-width:300px;margin:0 0 13px}.reports-preview{display:grid;grid-template-columns:1fr 1.7fr;gap:24px}.report-explanation{background:var(--teal);color:#fff;border-radius:var(--radius);padding:26px}.report-explanation h2{font-family:Georgia,serif;font-size:1.55rem;font-weight:400;line-height:1.3}.report-explanation p{font-size:.875rem;color:#cde1e5}.report-explanation .criteria-guide{border-color:#ffffff30}.report-explanation .criterion-info strong{color:#fff}.report-explanation .criterion-info small{color:#cde1e5}.report-list td:last-child{text-align:right}
.event-filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.event-filter{border:1px solid var(--line);padding:7px 14px;background:#fff;color:var(--muted);font-size:.875rem;border-radius:8px}.event-filter.active{color:var(--teal);background:#e5f0f3;border-color:#aacbd3}.agenda-list{display:flex;flex-direction:column;gap:16px}.event-card{display:flex;gap:23px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}.event-card .date-tile{min-width:61px;height:68px}.event-main{flex:1;min-width:0}.event-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.event-top h2{margin-bottom:7px;font-size:1.05rem}.event-details{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--muted);font-size:.8125rem;margin:9px 0}.event-description{white-space:pre-wrap;font-size:.875rem;color:#567078;margin-bottom:15px;overflow-wrap:anywhere}.recipient-list{padding:12px;background:#f6f9fa;border:1px solid var(--line);border-radius:8px;max-height:200px;overflow:auto;display:grid;gap:11px}.event-response{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.settings-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:24px;align-items:start}.weights-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.weights-grid label{font-size:.75rem;color:var(--teal)}.settings-form h2{border-bottom:1px solid var(--line);padding-bottom:14px;margin-top:26px}.settings-form h2:first-child{margin-top:0}.period-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.period-item:last-child{border:0}.period-item strong{display:block;font-size:.875rem}.period-item small{display:block;color:var(--muted);font-size:.75rem}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:25px}.course-card{background:#fff;padding:20px;border:1px solid var(--line);border-radius:var(--radius)}.course-card h3{font-size:1.1rem;margin:9px 0 5px}.course-card p{font-size:.8125rem;color:var(--muted)}.course-card .actions{padding-top:13px;border-top:1px solid var(--line)}.modal{padding:0;border:0;border-radius:14px;width:560px;max-width:calc(100vw - 28px);max-height:90vh;background:#fff;color:var(--ink);box-shadow:0 25px 100px #0b263a44}.modal::backdrop{background:#0d2f3a66;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;padding:19px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.modal-heading h2{margin:0;font-size:1.2rem}.modal #modal-body{padding:23px 24px}.modal .modal-description{font-size:.875rem;color:var(--muted);margin-bottom:20px}.toast-region{position:fixed;bottom:22px;right:24px;max-width:420px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{padding:14px 18px;box-shadow:var(--shadow);border-radius:9px;background:#154d58;color:#fff;font-size:.875rem;border:1px solid #316d78}.toast.error{background:#a33f3f;border-color:#a33f3f}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:var(--teal);color:#fff;display:flex;flex-direction:column;padding:46px 9% 38px;position:relative;overflow:hidden}.login-story .brand{color:#fff}.login-story .brand-mark{background:#ffffff18}.story-content{margin:auto 0;padding:50px 0}.story-content .eyebrow{color:var(--accent)}.story-content h1{font-size:clamp(2.7rem,4.3vw,4.8rem);line-height:1.12;letter-spacing:-1.5px;margin:0 0 25px;max-width:530px}.story-content p{color:#c4dde2;font-size:1.1rem;max-width:390px;line-height:1.7}.criteria-strip{display:flex;gap:10px;flex-wrap:wrap;margin-top:36px}.criteria-strip span{border:1px solid #ffffff35;border-radius:6px;padding:8px 13px;font-size:.75rem;letter-spacing:1px}.story-foot{font-size:.8125rem;color:#b2cfd6;padding-top:22px;border-top:1px solid #ffffff22}.login-form-area{padding:50px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f8fafb}.login-card{width:100%;max-width:370px;margin:auto 0}.login-card h2{font-family:Georgia,serif;font-size:2rem;font-weight:400;letter-spacing:-.7px;margin-bottom:10px}.login-card p{color:var(--muted);font-size:.9375rem}.login-card label{margin-top:24px}.login-card .btn{margin-top:26px;min-height:48px}.login-card .hint{font-size:.8125rem;margin-top:25px;line-height:1.7}.password-field{position:relative}.password-field input{padding-right:58px}.password-field .icon-btn{position:absolute;right:4px;bottom:2px;font-size:.75rem}.login-form-area footer{font-size:.75rem;color:#80939b;padding-top:45px}.setup-body{padding:35px 15px;background:#edf4f6}.setup-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;max-width:750px;margin:0 auto;padding:38px 44px}.setup-brand{margin-bottom:36px}.setup-card>p{color:var(--muted)}.setup-card h1{font-size:2.1rem}.setup-card h2{margin:30px 0 20px}.requirements{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.requirements span{font-size:.75rem;padding:5px 9px;border-radius:5px}.check-ok{background:#edf7f1;color:#227052}.check-error{background:#fff0f0;color:#a23e3e}.setup-help{text-align:center;font-size:.875rem;margin:25px 0 0}.guide-content{max-width:850px;margin:35px auto;padding:35px;background:#fff;border:1px solid var(--line);border-radius:14px}.guide-content h1{margin:27px 0 18px}.guide-content h2{margin:30px 0 14px}.guide-content li{margin-bottom:12px}.guide-content code{background:#edf3f5;border-radius:4px;padding:2px 5px;font-size:.8125rem}.guide-content pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#edf3f5;padding:15px;font-size:.8125rem}.guide-content .brand{margin-bottom:20px}
@media(min-width:1500px){.workspace{max-width:1700px;margin:0 auto;padding:38px 45px}.topbar{padding:0 45px}.dashboard-grid{grid-template-columns:minmax(0,2.2fr) minmax(320px,1fr)}}
@media(max-width:1150px){.sidebar{width:220px;padding-left:14px;padding-right:14px}.main-shell{margin-left:220px;width:calc(100% - 220px)}.workspace{padding:27px 23px}.topbar{padding:0 23px}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>.card:last-child{display:block}.course-grid{grid-template-columns:repeat(2,1fr)}.settings-grid{grid-template-columns:1fr}.reports-preview{grid-template-columns:1fr}.report-explanation .criteria-guide{max-width:600px}.dashboard-stats{gap:12px}.stat-card{padding:18px}.stat-icon{right:15px}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .18s;box-shadow:8px 0 40px #14384222}.sidebar.open{transform:translateX(0)}.main-shell{margin:0;width:100%}.mobile-toggle{display:inline-flex}.topbar{height:72px;padding:0 18px}.breadcrumb{margin-right:auto}.topbar-right{gap:12px}.user-block{border:0;padding:0}.user-block>span:last-child{display:none}.workspace{padding:25px 18px}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:16px}.page-heading h1{font-size:1.95rem}.app-footer{padding:0 18px 20px;flex-wrap:wrap}.login-story{padding:35px 9%}.login-layout{grid-template-columns:1fr}.login-story .story-content{padding:40px 0 25px}.story-content h1{font-size:2.8rem}.story-content p{font-size:1rem;margin-bottom:0}.criteria-strip{margin-top:22px}.story-foot{display:none}.login-form-area{padding:38px 25px}.login-card h2{font-size:1.8rem}.login-form-area footer{padding-top:30px}.story-content h1 br{display:none}.setup-card{padding:28px}.setup-card h1{font-size:1.8rem}.event-top{flex-wrap:wrap;gap:9px}.guide-content{margin:15px;padding:25px}}
@media(max-width:540px){.dashboard-stats{grid-template-columns:1fr}.stat-card{padding:16px 20px;display:grid;grid-template-columns:1fr auto}.stat-card .stat-number{grid-row:1/3;grid-column:2;margin:0 50px 0 12px;font-size:2.4rem}.stat-card small{margin-top:3px}.stat-icon{top:20px;padding:8px}.dashboard-grid{gap:18px}.card{padding:18px}.criteria-guide{grid-template-columns:repeat(2,1fr);gap:14px}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.weights-grid{grid-template-columns:repeat(2,1fr)}.course-grid{grid-template-columns:1fr}.filters{gap:12px}.filters label{min-width:100%;width:100%}.gradebook-foot{align-items:flex-start;flex-direction:column}.gradebook-toolbar{padding:15px}.event-card{gap:13px;padding:17px}.event-card .date-tile{min-width:46px;height:56px}.event-card .date-tile strong{font-size:1.5rem}.modal-heading{padding:15px 18px}.modal #modal-body{padding:18px}.modal .form-grid{gap:13px}.toast-region{left:15px;right:15px;bottom:15px;max-width:none}.topbar-right{gap:7px}.notification-btn{padding:6px 8px}.breadcrumb{font-size:.75rem;gap:8px}.guide-content{padding:20px}.page-heading .actions{width:100%}.page-heading .actions .btn{flex:1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.sidebar,.topbar,.app-footer,.page-heading .actions,.filters,.gradebook-toolbar .actions,.toast-region,.modal{display:none!important}.main-shell{width:100%;margin:0}.workspace{padding:0}.gradebook-scroll{max-height:none;overflow:visible}.gradebook-table{min-width:0;table-layout:auto;font-size:9px}.gradebook-table th,.gradebook-table .student-cell{position:static!important}.gradebook-table .student-head{width:170px;min-width:170px}.gradebook-table td input.grade-input{font-size:10px;width:55px}.gradebook-table .grade-column{min-width:55px;width:55px}.gradebook-table .comment-column{display:none}.gradebook-table .criterion-average{width:40px;min-width:40px}.gradebook-table .assessment-heading{width:55px;font-size:9px}.btn{display:none!important}body{background:#fff}}
@media print {
  .assessment-heading small,
  .assessment-heading button {
    display: none !important;
  }
}

/* Igualar los títulos de evaluación con Promedio, también al imprimir. */
.gradebook-table .assessment-heading > span,
.gradebook-table thead tr:nth-child(2) th.criterion-average {
  font-size: .75rem;
}

/* Centrar y ajustar el título dentro de su columna sin recortarlo. */
.gradebook-table thead tr:nth-child(2) th {
  text-align: center;
  vertical-align: middle;
}
.gradebook-table .assessment-heading {
  width: 100%;
  height: auto;
  min-height: 66px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.gradebook-table .assessment-heading > span {
  display: block;
  width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
}
@media print {
  .gradebook-table .assessment-heading {
    padding: 8px 4px;
  }
}

/* Identidad institucional y acceso */
.brand-logo{width:45px;height:54px;object-fit:contain;background:white;border-radius:8px;padding:3px;flex-shrink:0}
.login-layout{background:#ecf2f4}.login-story{background:radial-gradient(ellipse at 0 100%,#277469,transparent 70%),linear-gradient(135deg,#102f42,#154d58);padding:42px 9%}
.login-story:after{content:"";position:absolute;right:-180px;bottom:-210px;width:560px;height:560px;border:1px solid #ffffff16;border-radius:50%;pointer-events:none}
.login-logo{display:block;width:100px;height:120px;object-fit:contain;margin:0 auto 25px}.login-card{max-width:450px;background:white;padding:34px;border:1px solid #dde8eb;border-radius:20px;box-shadow:0 22px 70px #123c4a12}.login-card h2{font-family:Arial,sans-serif;font-size:1.65rem;font-weight:700;line-height:1.25;margin-top:10px}.login-form-area{background:transparent;padding:40px}.criteria-strip b{display:block;font-size:1.45rem;letter-spacing:0}.criteria-strip span{min-width:83px;background:#ffffff08}.attendance-select{min-width:145px}.attendance-summary{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.attendance-summary span{background:white;border:1px solid var(--line);padding:9px 14px;border-radius:8px}.attendance-note{min-width:180px}
@media(max-width:800px){.login-story .story-content{padding:25px 0 0}.story-content h1{font-size:2.4rem}.login-form-area{padding:24px 16px}.login-card{padding:25px}.login-logo{width:75px;height:90px}.login-story{padding:25px}.criteria-strip{margin-bottom:15px}}

/* Horarios académicos: paleta suave con texto de alto contraste. */
.pastel-mint{background:#e0f3e9!important;color:#234a3d}.pastel-blue{background:#e3ecfb!important;color:#29476b}.pastel-lavender{background:#eee5f8!important;color:#51406b}.pastel-peach{background:#fbe9dd!important;color:#6b4832}.pastel-rose{background:#f8e3e9!important;color:#6d3c4d}.pastel-yellow{background:#fbf3d5!important;color:#64552c}.pastel-aqua{background:#def1f4!important;color:#2d5661}.pastel-sage{background:#e9eedc!important;color:#4b5831}
.schedule-overview{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:20px 0}.schedule-overview h2{margin:7px 0}.schedule-overview p{max-width:650px;color:var(--muted);font-size:.9rem;margin:0}.schedule-break-summary{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 20px;min-width:215px;font-size:.85rem}.schedule-break-summary small{color:var(--muted)}.timetable{table-layout:fixed;min-width:980px;border-collapse:separate;border-spacing:5px;background:#fff;padding:6px}.timetable th{text-align:center;white-space:normal;border:0;background:#f1f5f6;padding:13px 8px}.timetable th:first-child{width:85px}.timetable td{border:1px solid #e2e9eb;border-radius:9px;text-align:center;vertical-align:middle;padding:15px 9px}.schedule-block strong,.schedule-block small,.schedule-block>span{display:block}.schedule-block strong{font-size:.93rem;line-height:1.35}.schedule-block small{font-size:.78rem;margin-top:6px}.schedule-block>span{font-size:.83rem;font-weight:600;margin-top:9px}.schedule-break{background:#f0f1f3!important;color:#647079}.schedule-break strong{font-size:.75rem;letter-spacing:.7px}.schedule-break small{display:block;font-size:.75rem;margin-top:5px}.schedule-free{background:#fafcfd!important;color:#a5b1b5;font-size:.75rem}.schedule-time{font-size:.85rem}.schedule-time small{font-size:.75rem;font-weight:400}.schedule-edit{display:flex;justify-content:center;gap:4px;margin-top:12px;flex-wrap:wrap}.schedule-edit .btn{background:#ffffffb8;font-size:.72rem;padding:4px 8px;min-height:28px;border-color:#ffffffa0}.schedule-caption{font-size:1rem;font-weight:600;text-align:left;padding:15px 12px 9px}.schedule-color-preview{padding:18px;border:1px solid #dce5e7;border-radius:9px;text-align:center}.schedule-footnote{margin-top:16px}#schedule-second-break[hidden]{display:none}
@media(max-width:800px){.schedule-overview{align-items:stretch;flex-direction:column;gap:14px}.schedule-break-summary{min-width:0}}
@media print{.schedule-edit,.schedule-footnote{display:none!important}.schedule-overview{break-inside:avoid}.schedule-card .table-scroll{overflow:visible}.timetable{min-width:0;width:100%;font-size:8pt;padding:0;border-spacing:2px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.timetable td{padding:8px 3px}.timetable th:first-child{width:55px}.schedule-block strong{font-size:9pt}.schedule-block small,.schedule-block>span{font-size:8pt}}

.logout-visible{border-color:#c3d7dc;background:#edf4f6;color:#164b58;flex-shrink:0}.logout-visible:hover{background:#dfecef}@media(max-width:600px){.topbar{padding:0 10px;gap:6px}.topbar-right{gap:6px}.logout-visible{font-size:.72rem;padding:7px 8px;min-height:38px}.breadcrumb{min-width:0;font-size:.76rem}.breadcrumb>span{display:none}.user-block{display:none}.notification-btn{font-size:.75rem;padding:6px}.mobile-toggle{flex-shrink:0}}
