:root{--primary:#168a4a;--primary-dark:#0f6f3a;--primary-soft:#eef8f2;--blue:#2878d7;--purple:#7d45d8;--orange:#f59e0b;--red:#ef4444;--text:#1f2937;--muted:#6b7280;--border:#e5e7eb;--bg:#f8fafc;--card:#fff}*{box-sizing:border-box}body{margin:0;font-family:Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top right,#e9f8ef,transparent 30%),radial-gradient(circle at bottom left,#eef4ff,transparent 35%),#f8fafc}.login-wrapper{width:100%;max-width:430px;padding:20px}.login-card{background:white;border:1px solid var(--border);border-radius:24px;padding:32px;box-shadow:0 20px 60px rgba(15,23,42,.08)}.logo-mark,.brand-icon{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;display:inline-flex;align-items:center;justify-content:center;font-weight:bold}.demo-box{background:#f9fafb;border:1px dashed var(--border);border-radius:14px;padding:12px;font-size:13px;color:var(--muted)}.app-layout{display:flex;min-height:100vh}.sidebar{width:265px;background:white;border-left:1px solid var(--border);padding:22px 18px;position:fixed;right:0;top:0;bottom:0;overflow:auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.brand span{display:block;font-size:13px;color:var(--primary)}.sidebar-nav{display:flex;flex-direction:column;gap:6px}.sidebar-nav a{color:#4b5563;padding:12px 14px;border-radius:14px;display:flex;align-items:center;gap:10px;transition:.2s}.sidebar-nav a:hover,.sidebar-nav a.active{background:var(--primary-soft);color:var(--primary)}.logout-link{margin-top:20px;color:var(--red)!important}.main-content{margin-right:265px;width:calc(100% - 265px);min-height:100vh}.topbar{height:78px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.search-box{width:460px;max-width:50%;height:46px;border:1px solid var(--border);border-radius:16px;display:flex;align-items:center;padding:0 14px;gap:10px;background:#fff}.search-box input{border:0;outline:none;width:100%;background:transparent}.user-box{display:flex;align-items:center;gap:18px}.notification{position:relative;font-size:22px}.notification span{position:absolute;top:-8px;left:-8px;background:var(--red);color:white;width:19px;height:19px;border-radius:50%;font-size:11px;display:flex;align-items:center;justify-content:center}.user-card{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:16px;padding:8px 12px;background:#fff}.user-card small{display:block;color:var(--muted)}.avatar{width:38px;height:38px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:bold}.page{padding:28px}.page-title{margin-bottom:24px}.page-title h1{font-size:28px;font-weight:700}.page-title p{color:var(--muted);margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-bottom:22px}.card-box{background:white;border:1px solid var(--border);border-radius:20px;padding:22px;box-shadow:0 10px 35px rgba(15,23,42,.04)}.stat-card{display:flex;align-items:center;justify-content:space-between}.stat-icon{width:54px;height:54px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:24px}.bg-green{background:var(--primary-soft);color:var(--primary)}.bg-blue{background:#eaf3ff;color:var(--blue)}.bg-purple{background:#f2eaff;color:var(--purple)}.bg-orange{background:#fff7e6;color:var(--orange)}.stat-number{font-size:30px;font-weight:700}.stat-label{color:var(--muted);font-size:14px}.content-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:20px}.badge-soft-success{background:#eaf8ef;color:var(--primary)}.badge-soft-warning{background:#fff7e6;color:var(--orange)}.badge-soft-danger{background:#fff1f1;color:var(--red)}.quick-actions{display:grid;gap:12px}.quick-action{border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;align-items:center;gap:12px;color:var(--text);background:#fff}.quick-action:hover{border-color:var(--primary);color:var(--primary)}.text-purple{color:var(--purple)!important}.plan-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}.summary-item{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px}.summary-item span{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}.summary-item strong{font-size:16px}.plan-actions{display:flex;flex-wrap:wrap;gap:10px}.plan-sections-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.plan-section-card{min-height:280px;display:flex;flex-direction:column}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-content{color:#374151;line-height:1.9;font-size:14px;flex:1}.section-actions{border-top:1px solid var(--border);margin-top:16px;padding-top:14px;display:flex;gap:8px;flex-wrap:wrap}.plan-editor{line-height:2;font-size:15px;resize:vertical;min-height:360px}.school-context-box,.approved-unit-plan-box{border:1px solid #d7f0e1;background:linear-gradient(135deg,#eef8f2,#fff);border-radius:18px;padding:16px}.school-context-title,.class-needs-title{display:flex;align-items:center;gap:8px;color:var(--primary);margin-bottom:12px}.school-context-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.school-context-items div{background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px}.school-context-items span{display:block;color:var(--muted);font-size:12px}.school-context-note{margin-top:12px;background:#fff7e6;border:1px solid #fde7b0;color:#7c4a03;border-radius:12px;padding:10px;line-height:1.7}.class-needs-box{border:1px solid #e8ddff;background:linear-gradient(135deg,#f6f0ff,#fff);border-radius:18px;padding:16px}.class-needs-title{color:var(--purple)}.class-needs-list{display:grid;gap:10px}.class-need-item{background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px}.class-need-item span{display:block;font-size:12px;color:var(--muted);margin-top:3px}.class-need-item p{margin:8px 0 0;color:#4b5563;line-height:1.7;font-size:13px}.approved-unit-plan-box{display:flex;align-items:center;justify-content:space-between;gap:16px}.approved-unit-plan-box strong{color:var(--primary);display:block;margin-bottom:4px}.approved-unit-plan-box p{margin:0;color:#374151;font-size:14px}.quality-circle{width:86px;height:86px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;border:6px solid;background:#fff}.quality-high{color:var(--primary);border-color:#b9e8cb}.quality-medium{color:var(--orange);border-color:#fde7b0}.quality-low{color:var(--red);border-color:#ffd0d0}.quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.quality-badge{min-width:54px;text-align:center;border-radius:999px;padding:5px 10px;font-weight:700;font-size:13px}.quality-badge.high{background:#eaf8ef;color:var(--primary)}.quality-badge.medium{background:#fff7e6;color:var(--orange)}.quality-badge.low{background:#fff1f1;color:var(--red)}.quality-bar{height:9px;background:#f3f4f6;border-radius:999px;overflow:hidden;margin-bottom:12px}.quality-bar div{height:100%;background:var(--primary);border-radius:999px}.report-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.report-nav-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px;display:flex;align-items:center;gap:14px;color:var(--text);transition:.2s}.report-nav-card:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.report-nav-card i{width:48px;height:48px;border-radius:16px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto}.report-nav-card span{display:block;color:var(--muted);font-size:13px}.report-source-list{display:grid;gap:12px}.report-source-list div{border:1px solid var(--border);border-radius:14px;padding:13px;display:flex;justify-content:space-between;align-items:center}.semester-weeks{display:grid;gap:18px}.semester-week-card{padding:0;overflow:hidden}.semester-week-head{background:linear-gradient(135deg,#eef8f2,#fff);border-bottom:1px solid var(--border);padding:18px 22px;display:flex;align-items:center;justify-content:space-between}.semester-week-head h5{margin:0 0 4px;font-weight:700;color:var(--primary)}.week-type-badge{background:var(--primary-soft);color:var(--primary)!important;border-radius:999px;padding:6px 12px;font-weight:700;font-size:13px}.semester-week-card .table-responsive{padding:12px 18px 18px}.unit-lessons-list{display:grid;gap:10px}.unit-lesson-item{border:1px solid var(--border);border-radius:14px;padding:12px;display:flex;align-items:center;gap:12px;background:#fff}.unit-lesson-item span{width:32px;height:32px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700}@media(max-width:992px){.sidebar{transform:translateX(100%)}.main-content{margin-right:0;width:100%}.content-grid{grid-template-columns:1fr}.search-box{max-width:100%;width:100%}.topbar{flex-direction:column;height:auto;align-items:stretch;gap:14px;padding:16px}.page{padding:16px}}


/* Curriculum import, review, audit, reports */
.curriculum-progress{height:22px;border-radius:999px;background:#eef2f7;overflow:hidden}.curriculum-progress .progress-bar{background:var(--primary);font-size:12px;font-weight:700}.curriculum-review-list{display:grid;gap:18px}.curriculum-review-unit{border-top:4px solid var(--primary)}.curriculum-review-unit-head,.lesson-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.review-status-select{width:220px;flex:0 0 auto}.curriculum-review-lessons{display:grid;gap:14px}.curriculum-review-lesson{border:1px solid var(--border);border-radius:18px;padding:16px;background:#fff}.lesson-status{width:180px}.audit-timeline{display:grid;gap:16px}.audit-item{display:grid;grid-template-columns:44px 1fr;gap:14px}.audit-icon{width:44px;height:44px;border-radius:14px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:20px}.audit-content{border:1px solid var(--border);border-radius:18px;padding:16px;background:#fff}.audit-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.audit-head strong{display:block;color:var(--text)}.audit-head span{display:block;color:var(--primary);font-size:12px;margin-top:3px}.audit-head small,.audit-user,.audit-meta{color:var(--muted);font-size:12px}.audit-details summary{cursor:pointer;color:var(--primary);font-weight:700}.audit-details pre{direction:ltr;text-align:left;white-space:pre-wrap;background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:12px;margin-top:10px;font-size:12px;max-height:260px;overflow:auto}@media(max-width:768px){.audit-item{grid-template-columns:1fr}.audit-icon{display:none}.curriculum-review-unit-head,.lesson-review-head{flex-direction:column;align-items:stretch}.review-status-select,.lesson-status{width:100%}}
