:root{color:#24211d;--green:#168244;--green-soft:#e5f3ea;--paper:#fffefd;--beige:#f2eadf;--line:#ded5c8;--muted:#81796f;background:#f3f0ea;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 0,#fff 0,#0000 32%),#f3f0ea;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-frame{max-width:1120px;min-height:100vh;margin:0 auto;padding:24px}.top-brand{align-items:center;gap:14px;padding:12px 4px 24px;display:flex}.top-brand img{object-fit:cover;object-position:left;width:82px;height:30px}.top-brand strong,.top-brand span{display:block}.top-brand strong{font-size:18px}.top-brand span{color:var(--muted);margin-top:2px;font-size:11px}.top-brand .text-button{margin-left:auto}.text-button{color:var(--muted);background:0 0;border:0}.login-card{background:var(--paper);border:1px solid #e4dbcf;border-radius:30px;grid-template-columns:1.25fr .75fr;align-items:center;gap:56px;min-height:560px;padding:64px;display:grid;box-shadow:0 22px 70px #4938240d}.login-card h1{letter-spacing:-.06em;margin:14px 0 22px;font-size:clamp(42px,6vw,72px);line-height:1.02}.login-card p{color:var(--muted);line-height:1.8}.login-card form{background:var(--beige);border-radius:22px;gap:18px;padding:26px;display:grid}.login-card small{color:var(--muted);text-align:center}.eyebrow{letter-spacing:.12em;color:var(--green);font-size:12px;font-weight:800}label{color:#6c655c;font-size:12px;font-weight:700}input,select,textarea{border:1px solid var(--line);color:#24211d;outline-color:var(--green);background:#fff;border-radius:10px;width:100%;margin-top:7px;padding:11px 12px}textarea{resize:vertical}.primary,.secondary{border:0;border-radius:10px;padding:11px 17px;font-weight:800}.primary{background:var(--green);color:#fff}.secondary{color:#514a42;background:#ece7de}.wide{width:100%}.page-head{justify-content:space-between;align-items:end;gap:24px;margin:34px 0 24px;display:flex}.page-head h1{letter-spacing:-.05em;margin:8px 0;font-size:clamp(34px,5vw,58px)}.page-head p{color:var(--muted);margin:0}.date-picker{width:190px}.student-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.student-card{text-align:left;background:var(--paper);border:1px solid #e4dbcf;border-radius:22px;grid-template-columns:auto 1fr auto;gap:7px 14px;min-height:140px;padding:24px;display:grid}.student-card:hover{border-color:var(--green);transform:translateY(-1px)}.avatar{background:var(--green-soft);width:48px;height:48px;color:var(--green);border-radius:15px;grid-row:1/3;place-items:center;font-size:20px;font-weight:900;display:grid}.student-card strong,.student-card small{display:block}.student-card small{color:var(--muted);margin-top:5px}.student-card em{background:var(--beige);border-radius:999px;padding:6px 9px;font-size:12px;font-style:normal}.student-card b{color:var(--green);grid-column:3;font-size:12px}.toolbar{justify-content:space-between;align-items:center;margin:12px 0;display:flex}.toolbar>div{align-items:center;gap:10px;display:flex}.toolbar small{color:var(--muted)}.status{background:var(--green-soft);color:var(--green);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.feedback-card{background:var(--paper);border:1px solid #e4dbcf;border-radius:28px;padding:38px;box-shadow:0 18px 60px #4938240d}.feedback-card>header{text-align:center;border-bottom:6px solid var(--green);padding-bottom:20px}.feedback-card>header h1{margin:0;font-size:36px}.feedback-card>header p{color:var(--muted);margin:6px 0}.meta-grid,.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0}.form-section{margin-top:20px}.form-section h2{background:var(--beige);border-radius:13px;padding:13px 17px;font-size:18px}.subject-block{border-bottom:1px solid #e9e1d6;grid-template-columns:110px 1.2fr 1.5fr 1fr;align-items:center;gap:12px;padding:13px 8px;display:grid}.subject-block.locked{opacity:.55}.subject-name strong,.subject-name small{display:block}.subject-name small{color:var(--muted);margin-top:4px;font-size:10px}.option-row{flex-wrap:wrap;gap:10px;display:flex}.option-row label{align-items:center;gap:4px;font-weight:500;display:flex}.option-row input{width:auto;margin:0}.notice{color:#59616a;background:#edf0f2;border-radius:12px;margin:16px 0;padding:13px 15px}.notice.warning{color:#7d5b13;background:#fff0cc}.notice.success{background:var(--green-soft);color:#145f3b}.notice.error{color:#9c342b;background:#ffe4df}.action-bar{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.owner-panel{background:var(--paper);border:1px solid #e4dbcf;border-radius:24px;padding:24px}.filter-row{grid-template-columns:1fr 1fr auto;gap:10px;display:grid}.owner-rows{gap:12px;margin-top:20px;display:grid}.owner-rows article{border:1px solid #e6ddd1;border-radius:16px;padding:18px}.owner-rows article>div{justify-content:space-between;display:flex}.owner-rows span,.owner-rows small{color:var(--muted);font-size:12px}.owner-rows p{font-size:14px}.loading{color:var(--muted);text-align:center;padding:32px}@media (width<=760px){.app-frame{padding:14px}.login-card{grid-template-columns:1fr;gap:24px;padding:28px}.login-card h1{font-size:42px}.page-head{flex-direction:column;align-items:stretch}.date-picker{width:100%}.student-grid{grid-template-columns:1fr}.feedback-card{padding:18px}.meta-grid,.two-col,.subject-block{grid-template-columns:1fr}.action-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffefde8;flex-direction:column;justify-content:stretch;padding:10px;position:sticky;bottom:8px}.filter-row{grid-template-columns:1fr}.top-brand img{width:66px}.feedback-card>header h1{font-size:28px}}.optional-homework{max-width:520px;margin:16px 8px 0}.edit-note{color:var(--muted);margin-top:8px;font-size:11px}.manager-head{margin-bottom:18px}.manager-tabs{border:1px solid var(--line);background:#eae5dc;border-radius:13px;gap:4px;margin-bottom:18px;padding:4px;display:inline-flex}.manager-tabs button{min-width:116px;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:10px 16px;font-weight:800}.manager-tabs button.active{background:var(--paper);color:#24211d;box-shadow:0 3px 12px #49382412}.account-console{gap:18px;display:grid}.account-console-head h2{margin:0 0 5px;font-size:24px}.account-console-head p{color:var(--muted);margin:0}.account-create,.account-row{background:var(--paper);border:1px solid #e4dbcf;border-radius:18px;grid-template-columns:1.1fr 1fr 1fr auto;align-items:end;gap:14px;padding:20px;display:grid}.account-create-head{grid-column:1/-1}.account-create-head strong,.account-create-head small,.account-identity strong,.account-identity small{display:block}.account-create-head small,.account-identity small{color:var(--muted);margin-top:4px;font-size:11px}.account-list{gap:10px;display:grid}.account-row{grid-template-columns:1.1fr 1fr 1fr .7fr 1.15fr}.account-row-readonly{background:#f7f4ef}.account-row-readonly input,.account-row-readonly select{color:#716a61;background:#eeeae3}.account-state{align-items:center;gap:8px;min-height:42px;display:flex}.account-status{border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.account-status.enabled{color:#145f3b;background:var(--green-soft)}.account-status.disabled{color:#8b4036;background:#ffe4df}.account-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.account-actions .secondary{padding:9px 12px}.account-reset{align-items:center;gap:4px;display:flex}.account-reset input{width:150px;margin:0;padding:8px 9px;font-size:11px}.account-lock{color:var(--muted);text-align:right}.account-notice{color:#59616a;background:#edf0f2;border-radius:12px;padding:13px 15px}.account-notice.success{background:var(--green-soft);color:#145f3b}.account-notice.error{color:#9c342b;background:#ffe4df}@media (width<=860px){.account-create{grid-template-columns:1fr 1fr}.account-row{grid-template-columns:1fr 1fr;align-items:end}.account-identity{grid-column:1/-1}.account-actions{justify-content:flex-start}}@media (width<=560px){.manager-tabs{grid-template-columns:1fr 1fr;width:100%;display:grid}.manager-tabs button{min-width:0}.account-create,.account-row{grid-template-columns:1fr;padding:16px}.account-identity,.account-create-head{grid-column:auto}.account-actions,.account-reset{grid-template-columns:1fr;display:grid}.account-reset input,.account-actions button,.account-create>button{width:100%}.account-lock{text-align:left}}
