*{box-sizing:border-box}body{margin:0;background:#f1f1f1;color:#333;font-family:Arial,Helvetica,sans-serif}.top-header{background:#1f3a5f;border-bottom:4px solid #14283f}.header-container{max-width:1100px;margin:auto;padding:18px 25px}.school-name{color:#fff;font-size:25px;font-weight:bold}.school-subtitle{margin-top:4px;color:#d8e1eb;font-size:13px}.navigation{background:#fff;border-bottom:1px solid #ccc}.navigation-container{max-width:1100px;margin:auto;display:flex;flex-wrap:wrap}.navigation a{padding:13px 15px;color:#333;text-decoration:none;font-size:13px;border-right:1px solid #e0e0e0}.navigation a:hover{background:#eee}.main-content{max-width:1100px;margin:30px auto;padding:0 25px}.page-title{margin-bottom:25px}.page-title h1{margin:0 0 7px;font-size:25px;font-weight:normal;color:#222}.page-title p{margin:0;color:#666;font-size:14px}.student-information,.dashboard-section,.announcements{margin-bottom:25px}.student-information h2,.dashboard-section h2,.announcements h2{margin:0;padding:11px 15px;background:#1f3a5f;color:#fff;font-size:16px}.information-box{background:#fff;border:1px solid #ccc}.information-box table,table{width:100%;border-collapse:collapse}.information-box th,.information-box td,th,td{padding:11px 15px;text-align:left;border-bottom:1px solid #ddd;font-size:13px}.information-box th,th{background:#f7f7f7;width:28%}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.dashboard-box{background:#fff;border:1px solid #ccc;padding:18px;min-height:125px}.dashboard-box h3{margin:0 0 12px;font-size:15px}.large-number{margin:0 0 12px;font-size:25px;font-weight:bold;color:#1f3a5f}.dashboard-box a,.small-link{color:#1f3a5f;text-decoration:none;font-size:13px}.dashboard-box a:hover,.small-link:hover{text-decoration:underline}.portal-container{display:flex;gap:12px;flex-wrap:wrap}.portal-button{display:inline-block;min-width:170px;padding:12px 18px;background:#fff;border:1px solid #ccc;color:#1f3a5f;text-decoration:none;font-size:14px;font-weight:bold}.portal-button:hover{background:#e9eef4;border-color:#1f3a5f}.compact-button{margin-top:14px}.hero-panel{background:#fff;border:1px solid #ccc;padding:40px}.hero-panel h1{color:#1f3a5f;font-size:30px;margin:0 0 10px}.hero-panel p{color:#555;line-height:1.6}.form-group{margin-bottom:17px}.form-group label{display:block;margin-bottom:7px;font-size:14px;font-weight:bold}.form-group input,.form-group select,.form-textarea,.filter-row select,.filter-row input{width:100%;padding:10px;border:1px solid #bbb;background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#333}.form-textarea{resize:vertical}.login-button{width:100%;padding:11px;border:1px solid #14283f;background:#1f3a5f;color:#fff;font-weight:bold;cursor:pointer}.login-button:hover{background:#14283f}.login-message{min-height:18px;margin:14px 0 0;color:#1f3a5f;font-size:13px}.login-page{min-height:calc(100vh - 150px);display:flex;justify-content:center;align-items:flex-start;padding:55px 20px}.login-box{width:100%;max-width:430px;background:#fff;border:1px solid #ccc}.login-header{padding:22px 25px;background:#f7f7f7;border-bottom:1px solid #ccc}.login-header h1{margin:0 0 6px;font-size:22px;color:#1f3a5f}.login-header p{margin:0;font-size:14px;color:#666}#loginForm{padding:25px}.login-footer{padding:15px 25px;border-top:1px solid #ddd;background:#fafafa;text-align:center}.login-footer a{color:#1f3a5f;text-decoration:none;font-size:13px}.class-list,.assignment-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.class-box,.assignment-box,.enrollment-box{padding:18px;background:#fff;border:1px solid #ccc}.class-box-title,.assignment-title,.enrollment-title{margin-bottom:10px;color:#1f3a5f;font-size:17px;font-weight:bold}.class-box-info,.assignment-info,.enrollment-info{margin-top:6px;color:#555;font-size:13px}.assignment-description{margin-top:14px;padding-top:12px;border-top:1px solid #ddd;color:#444;font-size:14px;line-height:1.5;white-space:pre-wrap}.assignment-status{margin-top:14px;padding-top:12px;border-top:1px solid #ddd;font-size:13px}.assignment-detail{background:#fff;border:1px solid #ccc;padding:20px}.assignment-detail-description{line-height:1.6}.gradebook-list,.grades-list,.event-list,.announcement-list,.enrollment-list{display:flex;flex-direction:column;gap:14px}.gradebook-submission,.grade-box,.event-box,.published-announcement{background:#fff;border:1px solid #ccc}.gradebook-header,.grade-box-header,.event-header,.published-announcement-header{display:flex;justify-content:space-between;gap:18px;padding:18px;background:#f7f7f7;border-bottom:1px solid #ccc}.gradebook-title,.grade-box-title,.event-title,.published-announcement-title{color:#1f3a5f;font-size:18px;font-weight:bold}.gradebook-info,.grade-box-info,.event-info{margin-top:6px;color:#555;font-size:13px}.gradebook-status{padding:7px 10px;background:#fff;border:1px solid #ccc;color:#1f3a5f;font-size:12px;font-weight:bold}.gradebook-response{padding:18px;border-bottom:1px solid #ddd}.student-response{padding:12px;min-height:70px;background:#fafafa;border:1px solid #ddd;white-space:pre-wrap;line-height:1.6}.gradebook-form{padding:18px}.grade-display{min-width:85px;padding:10px;background:#1f3a5f;color:#fff;text-align:center;font-weight:bold}.grade-feedback{padding:18px}.grade-feedback h3{margin:0 0 10px;font-size:14px}.grade-feedback p{margin:0;padding:12px;background:#fafafa;border:1px solid #ddd;white-space:pre-wrap;line-height:1.6}.event-description,.published-announcement-message{padding:18px;white-space:pre-wrap;line-height:1.6}.event-settings{display:flex;gap:25px;padding:14px 18px;color:#555;font-size:13px}.published-announcement-date{margin-top:5px;color:#777;font-size:12px}.delete-button{padding:8px 13px;background:#fff;border:1px solid #bbb;color:#333;font-weight:bold;cursor:pointer}.delete-button:hover{background:#eee}.filter-row{align-items:center}.filter-row>*{flex:1;min-width:150px}footer{max-width:1100px;margin:25px auto 0;padding:15px 25px;border-top:1px solid #ccc;color:#777;font-size:12px}footer p{margin:3px 0}.announcement-box{padding:18px;background:#fff;border:1px solid #ccc;font-size:14px}.announcement-box p{color:#666}.portal-options{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}@media(max-width:800px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.class-list,.assignment-list{grid-template-columns:1fr}.gradebook-header,.grade-box-header,.event-header,.published-announcement-header{flex-direction:column}}@media(max-width:600px){.dashboard-grid,.portal-options{grid-template-columns:1fr}.navigation-container{display:block}.navigation a{display:block;border-right:0;border-bottom:1px solid #eee}.main-content{padding:0 15px}.login-page{padding:30px 15px}.filter-row{flex-direction:column;align-items:stretch}}
/* Traditional district portal enhancements */
.class-actions{margin-top:16px;padding-top:14px;border-top:1px solid #ddd;display:flex;gap:8px;flex-wrap:wrap}
.portal-table{width:100%;border-collapse:collapse;background:#fff}
.portal-table th{background:#e9edf2;color:#333;font-weight:bold}
.portal-table th,.portal-table td{border:1px solid #cfcfcf;padding:10px 12px;text-align:left;font-size:13px}
.portal-table tr:nth-child(even) td{background:#fafafa}
.section-note{padding:10px 14px;background:#f7f7f7;border:1px solid #ddd;color:#666;font-size:13px}
.status-pill{display:inline-block;padding:4px 8px;border:1px solid #bbb;background:#fff;font-size:12px;font-weight:bold}
.portal-button.secondary{color:#333;background:#f7f7f7}

.form-grid{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.form-grid label{display:flex;flex-direction:column;gap:6px;min-width:220px}
.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.file-button{display:inline-flex;align-items:center;cursor:pointer}

/* Velasquez Academy traditional district portal layer */
body{background:#f3f4f6;color:#222;font-family:Arial,Helvetica,sans-serif}
.district-header{min-height:68px;background:#fff;border-bottom:1px solid #c9cdd2;display:flex;align-items:center;justify-content:space-between;padding:0 28px}
.district-brand{display:flex;align-items:center;gap:12px;color:#24384f}
.district-brand strong{display:block;font-size:20px}.district-brand span{display:block;color:#666;font-size:12px;margin-top:2px}
.school-mark{width:42px;height:42px;background:#24384f;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:bold}
.account-area{display:flex;gap:14px;align-items:center;font-size:13px}.account-area button{border:0;background:none;color:#234a73;cursor:pointer}
.district-nav{background:#294d70;border-bottom:4px solid #d6a84f;display:flex;flex-wrap:wrap;padding:0 24px}
.district-nav a{color:#fff;text-decoration:none;padding:13px 15px;font-size:13px;border-right:1px solid rgba(255,255,255,.14)}
.district-nav a.active,.district-nav a:hover{background:#1e3d59}
.portal-shell{display:flex;max-width:1320px;margin:0 auto;min-height:calc(100vh - 110px)}
.side-menu{width:220px;background:#e9ecef;border-right:1px solid #cfd3d7;padding:18px 0;flex-shrink:0}
.side-title{font-size:12px;text-transform:uppercase;font-weight:bold;color:#555;padding:0 18px 10px}
.side-menu a{display:block;color:#263d55;text-decoration:none;padding:10px 18px;font-size:13px;border-left:3px solid transparent}
.side-menu a:hover,.side-menu a.selected{background:#dce4eb;border-left-color:#294d70;font-weight:bold}
.portal-main{flex:1;padding:22px 26px}.portal-main.standalone{max-width:1100px;margin:auto}
.crumb{font-size:11px;color:#6a6f75;margin-bottom:12px}
.welcome-box{background:#fff;border:1px solid #cfd3d7;padding:18px 20px;margin-bottom:16px}.welcome-box h1{font-size:22px;margin:0 0 6px;color:#263d55}.welcome-box p{margin:0;color:#666;font-size:13px}
.portal-panel{background:#fff;border:1px solid #cfd3d7;margin-bottom:16px}
.panel-heading{background:#edf0f3;border-bottom:1px solid #cfd3d7;padding:10px 14px}.panel-heading h2{font-size:15px;color:#263d55;margin:0}
.portal-table{width:100%;border-collapse:collapse}.portal-table th,.portal-table td{border:1px solid #d5d8dc;padding:10px 12px;font-size:13px}.portal-table th{background:#f0f2f4;text-align:left;color:#3e464e}
.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;padding:14px}
.portal-tile{border:1px solid #cfd3d7;background:#fafafa;text-decoration:none;color:#263d55;padding:15px;min-height:76px}.portal-tile:hover{background:#f1f4f6;border-color:#9da8b2}.portal-tile strong{display:block;font-size:14px;margin-bottom:7px}.portal-tile span{display:block;color:#666;font-size:12px;line-height:1.4}
.table-link{color:#1e4e78;text-decoration:underline}.search-row{padding:14px}.search-row input{width:100%;box-sizing:border-box;padding:9px;border:1px solid #aaa;font-size:13px}
.section-note{margin:14px;padding:12px;background:#f7f7f7;border:1px solid #ddd;color:#666;font-size:13px}
@media(max-width:800px){.portal-shell{display:block}.side-menu{width:auto;border-right:0;border-bottom:1px solid #ccc}.district-header{padding:10px 14px}.district-nav{padding:0}.portal-main{padding:14px}}

/* Unified Velasquez Academy portal */
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;padding:14px}
.form-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:bold;color:#454b52}
.form-grid input,.form-grid select,.form-grid textarea{font:inherit;font-weight:normal;padding:9px;border:1px solid #aeb4ba;background:#fff;box-sizing:border-box}
.form-grid .wide{grid-column:1/-1}.panel-actions{padding:0 14px 14px;display:flex;gap:8px;flex-wrap:wrap}
.locked-box{margin:14px;padding:13px 15px;border:1px solid #d2b26b;background:#fff8e7;color:#5b4a2b}
.locked-box strong,.locked-box span{display:block}.locked-box span{margin-top:4px;font-size:12px}
.setup-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:14px;gap:10px}
.setup-grid div{border:1px solid #d5d8dc;background:#fafafa;padding:13px}.setup-grid strong,.setup-grid span{display:block}.setup-grid strong{font-size:12px;color:#555}.setup-grid span{margin-top:7px;color:#263d55}
.text-button{background:none;border:0;color:#1e4e78;text-decoration:underline;cursor:pointer;font:inherit;padding:4px}
.notice{margin:12px 14px;padding:12px;border:1px solid #d5d8dc;background:#fafafa}.notice p{margin:6px 0 0;color:#555;font-size:13px}
.muted{padding:0 14px;color:#666;font-size:12px}
@media(max-width:800px){.form-grid,.setup-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}

/* Official Velasquez Academy 2026 identity */
.school-logo{width:150px;height:54px;display:flex;align-items:center;overflow:hidden;background:#fff}
.school-logo img{width:150px;height:auto;display:block;object-fit:contain;object-position:left center}
.district-brand{gap:14px}
.district-brand strong{letter-spacing:.1px}
@media(max-width:800px){.school-logo{width:120px}.school-logo img{width:120px}}

.official-brand{padding:18px 24px;background:#fff;border-bottom:1px solid #d0d4d8}
.official-brand img{width:min(430px,80vw);max-height:90px;object-fit:contain;object-position:left center}

.term-editor{padding:0 14px 14px}.term-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;margin-top:4px}
.term-editor-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:bold;color:#454b52}
.term-editor-grid input{padding:9px;border:1px solid #aeb4ba;font:inherit;font-weight:normal}
@media(max-width:800px){.term-editor-grid{grid-template-columns:1fr}}
