*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.block{display:block}.contents{display:contents}.hidden{display:none}.animate-spin{animation:spin 1s linear infinite}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#243c35;background:#f7f8f4;font-synthesis:none;font-size:15px;--ink:#243c35;--muted:#7b8880;--green:#285d49;--green-dark:#1e4538;--green-light:#edf4ed;--line:#e4e9e1;--cream:#f7f8f4;--amber:#dda74f;--shadow:0 12px 45px #263e3210}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button,input,textarea,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #7ca790;outline-offset:3px}h1,h2,h3,p{margin-top:0}button svg{flex-shrink:0}a{color:var(--green)}.muted{color:var(--muted);line-height:1.8}.section-label{font-size:11px;font-weight:650;letter-spacing:2px;color:#8b998e}.card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 3px 10px #243c3503}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 17px;min-height:44px;border-radius:10px;border:1px solid transparent;font-size:14px;font-weight:550;line-height:1.4;transition:background .15s,box-shadow .15s}.button-primary{background:var(--green);color:#fff}.button-primary:hover:not(:disabled){background:var(--green-dark);box-shadow:0 5px 12px #285d4920}.button-secondary{background:#fff;color:var(--ink);border-color:var(--line)}.button-secondary:hover:not(:disabled){background:#f0f4ee}.button-quiet{background:transparent;color:var(--muted)}.button-quiet:hover:not(:disabled){background:#edf2eb;color:var(--green)}.field{width:100%;background:#fff;border:1px solid #dce3d8;border-radius:10px;padding:12px 14px;min-height:44px;color:var(--ink)}textarea.field{resize:vertical;line-height:1.7}.field-label{display:block;font-size:13px;font-weight:600;margin-bottom:9px}.chip{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#f6f7f3;border:1px solid #e5e9e0;border-radius:999px;padding:8px 13px;min-height:36px;font-size:12px;color:#66756a;line-height:1.35}.chip-selected{background:#e7f0e6;color:var(--green);border-color:#8eaf92;font-weight:600}.alert{background:#fcf3df;border:1px solid #f1dfb3;color:#80642d;border-radius:12px;padding:13px 16px;margin:14px 0;font-size:14px;line-height:1.7}.alert-error{background:#fff0ed;border-color:#efcfc7;color:#a34737}.alert-success{background:#edf6ec;border-color:#c4ddc0;color:#386742}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.handwriting-area{touch-action:none;overscroll-behavior:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.math-markdown{line-height:1.85;overflow-wrap:anywhere;min-width:0}.math-markdown p{margin:0 0 .85em}.math-markdown p:last-child{margin-bottom:0}.math-markdown ul,.math-markdown ol{padding-left:1.6em;margin:.65em 0}.math-markdown ol{list-style:decimal}.math-markdown ul{list-style:disc}.math-markdown h1,.math-markdown h2,.math-markdown h3{font-size:1.1em;font-weight:650;margin:1em 0 .5em}.math-markdown table{border-collapse:collapse;margin:.8em 0;max-width:100%;font-size:.92em}.math-markdown th,.math-markdown td{border:1px solid var(--line);padding:5px 10px}.math-markdown blockquote{border-left:3px solid #a6bea6;padding-left:12px;color:#66756a}.math-markdown img{max-width:100%;height:auto}.katex-display{overflow-x:auto;overflow-y:hidden;padding:3px 0}.katex{font-size:1.1em}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#18342775;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.modal-panel{background:var(--cream);border:1px solid #e0e6dc;border-radius:22px;width:min(1100px,100%);max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 25px 100px #102b3340}.page-loading{display:flex;align-items:center;justify-content:center;gap:14px;min-height:340px;color:var(--muted);background:var(--cream);border-radius:20px}.app-shell{display:flex;min-height:100dvh}.app-sidebar{width:234px;flex:0 0 234px;background:#fffef9;border-right:1px solid var(--line);padding:34px 22px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}.brand{display:flex;align-items:center;gap:12px;text-align:left;background:transparent;border:0;color:var(--ink);font-size:21px;font-weight:650;letter-spacing:1px;text-decoration:none}.brand-icon{width:46px;height:46px;display:grid;place-items:center;background:var(--green);border-radius:14px;color:#fff;flex-shrink:0}.brand small{display:block;color:#9aa596;font-size:10px;letter-spacing:1.5px;font-weight:400;margin-top:5px}.sidebar-divider{height:1px;background:var(--line);margin:32px 2px}.sidebar-label{padding:0 12px}.sidebar-nav{display:flex;align-items:center;gap:12px;margin-top:17px;border:0;background:transparent;color:var(--muted);padding:14px 15px;text-align:left;border-radius:12px;font-size:14px}.sidebar-nav.is-active{background:#eaf1e6;color:var(--green);font-weight:600}.nav-dot{width:5px;height:5px;background:var(--green);border-radius:50%;margin-left:auto}.sidebar-record{margin-top:16px;width:100%;font-size:13px}.sidebar-note{padding:25px 13px;margin-top:auto;margin-bottom:24px}.note-star{color:#c6a15b;font-size:26px}.sidebar-note p{line-height:1.9;font-size:13px;color:#6d7b6d;margin:13px 0}.sidebar-note small{font-size:10px;color:#a3ad9c}.sidebar-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;justify-content:space-between;color:#8c9a8d;font-size:11px}.sidebar-bottom>span{display:flex;gap:6px;align-items:center}.sidebar-bottom .button{padding:7px;font-size:11px}.app-main{flex:1;min-width:0;padding:0 clamp(20px,3.5vw,58px) 40px}.app-topbar{height:83px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.topbar-caption{font-size:12px;color:#92a08f;letter-spacing:.5px}.topbar-actions{display:flex;gap:12px;align-items:center}.connection-status{display:flex;align-items:center;gap:7px;font-size:11px;color:#7c947d}.connection-status.is-offline{color:#aa7840}.mobile-brand,.mobile-record{display:none}.saved-notice{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:90;background:var(--green);color:#fff;padding:14px 24px;border-radius:14px;box-shadow:var(--shadow);max-width:90vw;font-size:14px}.offline-banner{margin-top:-12px}.login-page{min-height:100dvh;padding:40px clamp(24px,9vw,130px);background:radial-gradient(ellipse at 85% 20%,#e5eedf,transparent 55%),#f7f8f2;display:flex;flex-direction:column}.login-brand{max-width:260px}.login-card{width:min(470px,100%);padding:44px;margin:55px auto 40px;box-shadow:var(--shadow)}.login-card h1{font-size:38px;line-height:1.45;margin:20px 0;letter-spacing:1px}.login-card form{margin-top:28px}.login-submit{width:100%;margin-top:15px}.login-footer{text-align:center;margin-top:auto;font-size:12px;letter-spacing:1px;color:#9aa38e}.app-shell-print .app-main{max-width:none}@media(max-width:1100px){.app-sidebar{width:200px;flex-basis:200px;padding:28px 16px}.app-main{padding:0 24px 32px}.brand{font-size:19px}.sidebar-note{padding-left:8px}.topbar-caption{font-size:11px}}@media(max-width:1000px){.app-sidebar,.topbar-caption{display:none}.mobile-brand{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:650}.mobile-record{display:inline-flex;padding:8px 12px;min-height:38px}}@media(max-width:760px){.app-sidebar{display:none}.app-main{padding:0 16px 26px}.app-topbar{height:70px;margin-bottom:25px}.topbar-caption{display:none}.mobile-brand{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:650}.mobile-record{display:inline-flex;padding:8px 12px;min-height:38px}.connection-status{font-size:10px}.connection-status svg{width:14px}.modal-backdrop{padding:10px}.modal-panel{max-height:calc(100dvh - 20px);border-radius:16px}.login-page{padding:26px 20px}.login-card{padding:30px 24px;margin-top:38px}.login-card h1{font-size:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}}@media print{.no-print,.app-sidebar,.app-topbar,.saved-notice,.modal-backdrop{display:none!important}html,body,#root,.app-shell,.app-main{display:block!important;background:#fff!important;width:auto!important;min-height:0!important;height:auto!important;padding:0!important;margin:0!important;overflow:visible!important}.math-markdown,.katex{color:#000}.katex-display{overflow:visible}.card{box-shadow:none}.print-exam-root{display:block!important}}
