:root{font-family:Inter,Microsoft YaHei,Arial,sans-serif;color:#24312c;background:#f4f6f5;font-size:14px;letter-spacing:0}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d3dcd7;background:#fff;color:#30433a;padding:9px 13px;border-radius:5px;cursor:pointer;min-height:38px}button:hover{background:#edf3ef}button:disabled{opacity:.5;cursor:default}.primary{background:#21634c;border-color:#21634c;color:#fff}.primary:hover{background:#174d39}input,select,textarea{border:1px solid #cfd9d3;background:#fff;border-radius:4px;padding:10px;max-width:100%;color:#25352d}textarea{width:100%;resize:vertical;line-height:1.7}label{display:block;margin:14px 0;line-height:1.5}label>input:not([type=checkbox]):not([type=radio]),label>textarea{display:block;width:100%;margin-top:6px}input[type=checkbox],input[type=radio]{accent-color:#21634c}h1{font-size:25px;margin:7px 0}h2{font-size:18px;margin:24px 0 15px}h3{font-size:16px}p{line-height:1.7}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}aside{background:#fff;border-right:1px solid #dce3df;padding:30px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;color:#21634c;font-size:20px}.family-label{font-size:12px;color:#809087;margin:36px 12px 12px}nav{display:grid;gap:5px}nav button{justify-content:flex-start;border:0;background:transparent;padding:12px}nav .active{background:#e9f1ec;color:#17553d;font-weight:700}.logout{margin-top:auto;border:0;justify-content:flex-start}main{padding:30px 40px;max-width:1500px;width:100%;margin:auto}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d9e1dc;padding-bottom:23px;margin-bottom:25px}.eyebrow{font-size:11px;color:#6b8475}.header-actions,.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.icon-button{height:38px;width:38px;padding:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:15px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #dce4de;border-bottom:1px solid #dce4de;padding:24px 0;margin:12px 0 32px}.metrics>div{border-right:1px solid #dce4de;padding:0 24px}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border:0}.metrics span{color:#748277;display:block}.metrics strong{display:block;font-size:32px;font-weight:600;margin-top:12px}.table-wrap{overflow:auto;background:#fff;border:1px solid #dde5df}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:12px;background:#edf1ee;color:#617369;font-weight:500}th,td{padding:14px 16px;border-bottom:1px solid #e6ebe7;vertical-align:middle}tr:last-child td{border-bottom:0}.word{font-weight:600}.badge{font-size:12px;color:#825d28;background:#f7efdf;padding:4px 7px;border-radius:3px}.muted,small{color:#78867d}.empty-row{text-align:center;padding:35px;color:#859389}.number-input{width:90px}.checkbox{display:flex;align-items:center;gap:8px}.inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline-form input{width:140px}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #dce4de;border-bottom:1px solid #dce4de;padding:15px 0;gap:10px}.week-strip span,.week-strip strong,.week-strip small{display:block;font-size:12px}.week-strip strong{font-size:15px;margin:10px 0}.binding{margin:12px;padding:10px;background:#e5eee7}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:35px}.checks{display:flex;gap:12px;flex-wrap:wrap}.checks label{margin:3px 0;font-size:13px}.upload{display:flex;align-items:center;gap:8px}.upload input{max-width:260px}.image-list{display:flex;gap:10px;flex-wrap:wrap}.image-list figure{margin:0;width:90px}.image-list img{width:90px;height:105px;object-fit:cover}.image-list button{padding:2px 4px;min-height:25px;font-size:11px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid #dfe6e1;cursor:pointer}.list-row small{display:block;margin-top:7px}.list-row strong{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.editor textarea{margin-top:15px}.assessment{border-bottom:1px solid #dce4de;padding:15px 0}.assessment ol{padding-left:23px}.assessment li{border-top:1px dashed #dce4de;padding:8px 0}.exercise{background:#fff;border:1px solid #d9e3dc;border-radius:6px;padding:24px;margin:15px 0;max-width:850px}.exercise button{margin:15px 8px 0 0}.passage{white-space:pre-wrap;max-height:350px;overflow:auto;border-bottom:1px solid #dde5df;padding-bottom:18px}.options{display:grid;gap:8px}.options label{border:1px solid #dce4de;padding:10px;margin:0}.feedback{background:#e8f0e9;border-left:3px solid #21634c;padding:15px;margin:18px 0}.question-form{max-width:650px}.message{padding:12px 16px;margin:10px 0;border-radius:4px}.error{background:#fcebea;color:#92352b}.success{background:#e8f3ec;color:#205940}.loading{color:#687e6d;padding:5px 0}.job-section{margin-top:35px}.job-section td:nth-child(3){max-width:400px;overflow-wrap:anywhere}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#eaf0ec}.login-panel{width:400px;max-width:calc(100% - 32px);padding:36px;background:#fff;border:1px solid #d5e0d9;border-radius:6px}.login-panel h1{margin:28px 0 20px}.login-panel .primary{width:100%;margin-top:12px}.empty{padding:30px 0}.empty form{display:flex;gap:12px;flex-wrap:wrap}a{color:#21634c}@media(max-width:900px){.app-shell{grid-template-columns:180px 1fr}main{padding:24px}.two-columns{grid-template-columns:1fr}.week-strip{grid-template-columns:repeat(4,1fr)}}@media(max-width:600px){.app-shell{display:block}aside{position:static;height:auto;padding:15px}.family-label,.logout{display:none}nav{display:flex;overflow:auto;margin-top:12px}nav button{flex-shrink:0;padding:9px;font-size:12px}.brand{font-size:18px}main{padding:20px 15px}header{align-items:flex-start;gap:12px}h1{font-size:22px}.metrics{grid-template-columns:repeat(2,1fr);gap:22px}.metrics>div{padding:0!important;border:0}.metrics strong{font-size:28px}.week-strip{grid-template-columns:repeat(3,1fr)}th,td{padding:12px 10px}.toolbar button{font-size:12px}.exercise{padding:18px}.header-actions select{max-width:120px}}
