
:root{--orange:#F55B29;--action:#be3e17;--amber:#FCAF43;--ink:#293943;--muted:#5C6B7A;--cream:#FCFCF2;--line:#e5e4d8;--soft:#fff1e8;--green:#28654c}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans CJK SC','Microsoft YaHei',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #ad431e;outline-offset:3px}button{min-height:44px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:9px 16px}button:hover{background:#faf7ee}button.primary{background:var(--action);color:#fff;border-color:var(--action)}button.primary:hover{background:#9b3012}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.3;margin-bottom:8px;letter-spacing:-1px}h2{font-size:21px;line-height:1.4}h3{font-size:18px}small,.small{font-size:14px}p{margin-bottom:12px}.muted{color:var(--muted)}.top{height:88px;border-top:4px solid var(--orange);border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand img{height:53px;width:53px;border-radius:50%;object-fit:contain}.brand strong{display:block;font-size:19px}.brand span{display:block;color:var(--muted);font-size:14px}.right,.row{display:flex;align-items:center;gap:12px}.switch{background:#f2f1e9;padding:4px;border-radius:9px;display:flex}.switch button{border:0;background:transparent;padding:7px 14px}.switch .active{background:white;color:var(--action);font-weight:700}.avatar{background:#fff0df;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--action);font-weight:700}.shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:calc(100vh - 88px);max-width:1600px;margin:auto}.sidebar{border-right:1px solid var(--line);padding:28px 16px;background:#faf8ef;display:flex;flex-direction:column;gap:24px}.eyebrow{font-size:14px;color:var(--muted);letter-spacing:1px}.nav{display:grid;gap:8px}.nav button{display:flex;align-items:center;gap:12px;text-align:left;border-color:transparent;background:transparent;padding:12px}.nav button.active{background:white;border-color:#efc6b4;color:var(--action);font-weight:700}.nav svg{width:20px;height:20px;flex-shrink:0}.nav .count{margin-left:auto;font-size:14px;border-radius:4px;padding:0 6px;background:#f4e4d4}.side-foot{margin-top:auto;border-top:1px solid var(--line);padding:20px 8px 0;font-size:14px;color:var(--muted)}.side-foot b{display:block;color:var(--ink);margin-bottom:8px}main{padding:28px 32px 48px;min-width:0}.demo{font-size:14px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:24px;color:var(--muted)}.demo b{color:var(--action)}.heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.heading p{margin:0;color:var(--muted)}.intro{display:flex;align-items:center;gap:32px;border-left:4px solid var(--amber);padding:12px 20px;background:#fff9e9;margin-bottom:24px}.intro b{font-size:18px;white-space:nowrap}.intro p{margin:0;color:#635942;font-size:14px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:center}.tabs{display:flex;border-bottom:1px solid var(--line);gap:24px;margin-bottom:20px}.tabs button{border:0;border-radius:0;padding:12px 0;background:transparent;color:var(--muted)}.tabs button.active{color:var(--action);border-bottom:3px solid var(--orange);font-weight:700}.search{flex:1;min-width:180px}.toolbar input,.toolbar select,.field input,.field select,.field textarea{width:100%;padding:10px 12px;min-height:44px;border:1px solid #a6adae;background:white;border-radius:8px;color:var(--ink)}.toolbar select{width:auto;max-width:100%}.toolbar input[type=radio]{width:20px;height:20px;min-height:20px;flex-shrink:0;accent-color:var(--action)}.toolbar .inline-toggle{min-width:150px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.thumb{position:relative;min-height:166px;background:#f8f7f1;padding:18px 24px;border-bottom:1px solid var(--line);overflow:hidden}.thumb::after{content:'';position:absolute;bottom:0;left:0;right:0;height:24px;background:linear-gradient(transparent,#f8f7f1)}.sheet-tag{font-size:14px;color:#64727a;display:flex;justify-content:space-between;margin-bottom:12px}.math{font:italic 23px/1.7 Georgia,'Times New Roman',serif;letter-spacing:.4px;color:#43566b}.wrong{display:inline-block;border:2px solid #ba4232;border-radius:45%;padding:0 9px;line-height:1.4}.note{font-size:14px;color:#a93223;font-style:normal;letter-spacing:0}.card-body{padding:18px}.card h3{margin:12px 0 8px;font-size:18px}.card p{font-size:14px;color:var(--muted)}.tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;background:#f3f1e9;font-size:14px;color:#58636a}.tag.orange{background:#fff0e5;color:#9c391b}.tag.green{background:#eaf3ed;color:var(--green)}.tag.yellow{background:#fff4cc;color:#725614}.card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:14px;margin-top:16px;gap:8px}.card-bottom button{border:0;padding:4px 0;color:var(--action);background:none;font-weight:650}.card-bottom label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;min-height:44px}.check{width:19px;height:19px;accent-color:var(--action)}.footbar{margin-top:24px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:14px}.panel{border:1px solid var(--line);border-radius:12px;background:white;padding:24px}.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px}.paper{background:#fffef8;border:1px solid #dfddd0;padding:28px;min-height:360px}.paper .math{font-size:30px;line-height:2}.paper h3{font-size:16px;font-weight:500;line-height:1.8}.paperhead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:20px}.tools{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tools button{font-size:14px;padding:8px 12px}.field{display:grid;gap:7px;margin-bottom:18px}.field label{font-size:14px;font-weight:650}.field textarea{resize:vertical;min-height:90px}.alert{background:#fff8e3;border-left:3px solid #d49b24;padding:12px 16px;font-size:14px;color:#6c5121;margin:16px 0}.steps{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.steps b{color:var(--action)}.drop{width:100%;border:2px dashed #c3bdb0;padding:32px 20px;background:#fffcf4;display:flex;min-height:250px;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center}.drop svg{width:36px;height:36px;color:var(--action)}.drop img{max-width:100%;max-height:180px;object-fit:contain}.number{font-size:14px;color:var(--action);letter-spacing:1px}.result-box{padding:16px;background:#f5f7f3;margin:16px 0}.empty{padding:64px 20px;text-align:center;border:1px dashed #bbb;border-radius:10px;grid-column:1/-1}.actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.printpage{max-width:760px;margin:24px auto;background:white;border:1px solid var(--line);padding:40px}.printpage h2{text-align:center;margin:12px 0}.printpage .item{margin:28px 0;border-bottom:1px dashed #aaa;padding-bottom:24px;break-inside:avoid}.lines{height:110px;background:repeating-linear-gradient(transparent 0,transparent 35px,#ddd 35px,#ddd 36px)}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#293943;color:white;border-radius:8px;padding:14px 20px;max-width:calc(100% - 32px);z-index:90;box-shadow:0 4px 12px #0002}.hidden{display:none!important}.view{animation:none}@keyframes appear{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:none}}.badge{font-size:14px;padding:4px 8px;background:#f2f1e9;border-radius:4px}.progress{height:8px;background:#eee;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:var(--orange);width:65%}.preview-note{font-size:14px;color:var(--muted);text-align:center;margin-top:12px}.inline-toggle{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px}.review-list{display:grid;gap:12px}.review-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:white;border:1px solid var(--line);border-radius:10px;padding:20px}.review-row h3{margin:0 0 8px}.countline{display:flex;gap:24px;padding:16px 0 24px;color:var(--muted);font-size:14px}.countline b{font-size:20px;color:var(--ink);margin-right:6px}.student-text{background:#f8faf7;padding:16px;border-radius:8px;margin-top:16px}.logotext{color:var(--muted);font-size:14px}.top .mini{font-size:14px}.annotation-off .wrong{border-color:transparent}.annotation-off .note{visibility:hidden}@media(max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top{padding:0 20px}.brand span{max-width:250px}.shell{grid-template-columns:190px minmax(0,1fr)}main{padding:24px}.split{grid-template-columns:1fr}.intro{gap:16px}.intro b{white-space:normal}.user-name{display:none}}@media(max-width:650px){.top{height:auto;min-height:120px;flex-wrap:wrap;padding:12px 16px;gap:12px}.brand img{width:44px;height:44px}.brand strong{font-size:18px}.brand span{font-size:14px}.right{width:100%;justify-content:space-between}.shell{display:block}.sidebar{padding:12px 16px;border-right:0;border-bottom:1px solid var(--line);gap:0}.sidebar>.eyebrow,.side-foot{display:none}.nav{display:flex;overflow-x:auto;gap:8px}.nav button{white-space:nowrap;flex-shrink:0;padding:10px}.nav svg{display:none}main{padding:20px 16px 32px}.demo{flex-direction:column;gap:4px;margin-bottom:20px}.heading{align-items:flex-start;flex-direction:column;gap:16px}h1{font-size:26px}.heading>.row{width:100%;flex-wrap:wrap}.intro{display:block;padding:12px 16px}.intro b{display:block;margin-bottom:6px}.grid{grid-template-columns:1fr}.tabs{gap:20px}.toolbar input{min-width:0}.toolbar select{flex:1}.panel{padding:18px}.paper{padding:18px;min-height:300px}.paper .math{font-size:25px}.footbar{align-items:flex-start;flex-direction:column}.printpage{padding:20px}.review-row{align-items:flex-start;flex-direction:column}.countline{gap:14px;flex-wrap:wrap}.actions button{flex:1}.tabs button{font-size:14px}}@media(prefers-reduced-motion:reduce){.view{animation:none}}@media print{body{background:white}.top,.sidebar,.demo,.heading,.noprint,.toast{display:none!important}.shell{display:block}main{padding:0}.printpage{border:0;padding:0;margin:0;max-width:none}.preview-note{display:none}@page{size:A4;margin:16mm}}

.top{height:auto;min-height:88px;padding-top:12px;padding-bottom:12px}.user-badge{display:flex;gap:12px;align-items:center}.login-wrap{max-width:1060px;margin:56px auto;padding:0 24px;display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}.login-title{font-size:40px;line-height:1.4;margin:16px 0}.login-card{padding:32px}.login-brand{max-width:600px}.login-brand img{width:90px;height:90px}.login-card button.primary{width:100%}.shell{min-height:calc(100vh - 88px)}.statusbar{font-size:14px;color:var(--muted);margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:16px}.tablewrap{overflow:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table td,.table th{text-align:left;border-bottom:1px solid var(--line);padding:14px 12px;white-space:nowrap}.table th{color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.checkbox-list{display:flex;flex-wrap:wrap;gap:12px}.checkbox-list label{display:flex;gap:6px;align-items:center;min-height:44px}.msg{color:#a62f24;background:#fff1ed;padding:12px 16px;border-radius:8px;margin:16px 0}.photo-area{position:relative;width:100%;user-select:none}.photo-area img{display:block;width:100%;height:auto}.boxes{position:absolute;inset:0;pointer-events:none}.ann{position:absolute;border:2px solid #b12920;box-sizing:border-box}.ann b{position:absolute;left:0;top:0;background:#b12920;color:white;font:14px/1.4 sans-serif;padding:1px 4px}.photo-area.drawing{cursor:crosshair;touch-action:none}.ann-line{display:flex;gap:8px;align-items:center;margin:10px 0;font-size:14px}.ann-line input{min-width:0;width:100%;padding:8px;border:1px solid #a6adae;border-radius:6px}.ann-line button{flex-shrink:0}.disabled-note{opacity:.75}.task-status{padding:14px;background:#f4f5ee;margin-bottom:18px;font-size:14px}.statsline{display:flex;gap:12px;flex-wrap:wrap}.statsline .panel{flex:1;min-width:160px;padding:16px}.statsline strong{display:block;font-size:22px}.revision{border-top:1px solid var(--line);padding:16px 0}.revision p{white-space:pre-wrap;overflow-wrap:anywhere}.card .thumb{height:185px;display:flex;align-items:center;justify-content:center;padding:12px}.card .thumb img{max-width:100%;max-height:160px;object-fit:contain}.card .thumb::after{display:none}.card h3,.card p{overflow-wrap:anywhere}.detail-note{white-space:pre-wrap;overflow-wrap:anywhere}.printpage img{max-width:100%;max-height:350px;object-fit:contain}.dialog{border:1px solid var(--line);border-radius:12px;max-width:600px;width:calc(100% - 32px);max-height:90vh;overflow:auto;padding:24px}.dialog::backdrop{background:#23323d88}.btns{display:flex;gap:8px;flex-wrap:wrap}.file-input{padding:12px 0;max-width:100%}.nav{overflow-x:auto}.skeleton{padding:48px 24px}.topic-note{font-size:14px;color:var(--muted)}.field select[multiple]{min-height:100px}.printpage .item{overflow-wrap:anywhere}#upload-preview{max-width:100%;max-height:230px;object-fit:contain}.original-photo{margin-bottom:16px}.top .brand strong span{font-size:16px}.plain{white-space:pre-wrap;overflow-wrap:anywhere}.page-error{padding:24px}.login-card input[type=password],.login-card input[type=text]{width:100%}.inline-toggle input{width:20px;height:20px;flex-shrink:0;accent-color:var(--action)}.card-bottom .row{gap:6px}.empty{padding:48px 20px}.printpage .plain{white-space:pre-wrap}.read-panel h3{margin:24px 0 8px}.account-info{padding:12px 16px;background:#f8f7f0;font-size:14px}.thumb a{display:block;width:100%}.login-footer{font-size:14px;color:var(--muted);margin-top:24px}.card-body .small{font-size:14px}.footbar .row{flex-wrap:wrap}
@media(max-width:900px){.login-wrap{grid-template-columns:1fr;gap:24px;max-width:600px;margin:24px auto}.login-title{font-size:30px}.login-brand img{width:60px;height:60px}.admin-grid{grid-template-columns:1fr}.login-card{padding:24px}}
@media(max-width:650px){.user-badge{width:100%;justify-content:space-between;font-size:14px}.top .brand strong span{font-size:14px}.dialog{padding:20px}.statsline{display:block}.statsline .panel{margin-bottom:12px}.printpage img{max-height:240px}.field input[type=file]{font-size:14px}.login-wrap{padding:0 16px}.heading .btns{width:100%}.heading .btns button{flex:1}}
@media print{.statusbar,.heading,.noprint,#toast,dialog{display:none!important}.printpage{box-shadow:none}.printpage .item{break-inside:auto}.printpage img{max-height:280px}.printpage h3{break-after:avoid}}

.field .checkbox-list input[type=checkbox]{width:20px;height:20px;min-height:20px;padding:0;flex:0 0 20px}.checkbox-list label{max-width:100%;padding:4px 8px;font-weight:500}
.read-panel>button+button{margin-left:8px;margin-top:8px}@media(max-width:650px){.toolbar .search{flex-basis:100%}.read-panel>button+button{margin-left:0;display:block}}
.read-panel>button[data-action=add-print]{margin:8px}@media(max-width:650px){.read-panel>button[data-action=add-print]{display:block;margin:12px 0}}
