/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.resize{resize:both}.italic{font-style:italic}.blur{--tw-blur:blur(8px);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,)}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#19342d;--muted:#6f817b;--paper:#fffdf8;--canvas:#f4f2e9;--green:#176b51;--green-2:#2a8a68;--green-soft:#e5f2eb;--line:#dbe2dc;--red:#c9473f;--red-soft:#fff0ee;--amber:#a66b18;--shadow:0 18px 50px #22423717}*{box-sizing:border-box}html{background:var(--canvas)}body{background:radial-gradient(circle at 10% 0%, #4b8f6c1f, transparent 28rem), var(--canvas);color:var(--ink);margin:0;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.auth-gate{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{text-align:center;width:min(440px,100%);padding:36px}.auth-card .brand-mark{margin:0 auto 18px}.auth-card h1{margin:0 0 8px;font-size:24px}.auth-card p{color:var(--muted);margin:0;line-height:1.6}.topbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8e0;border-bottom:1px solid #19342d14;justify-content:space-between;align-items:center;gap:24px;padding:18px max(24px,50vw - 590px);display:flex;position:sticky;top:0}.brand{letter-spacing:.06em;align-items:center;gap:12px;font-weight:800;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:13px;place-items:center;width:40px;height:40px;font-size:20px;display:grid;box-shadow:0 8px 18px #176b5133}.brand small{color:var(--muted);letter-spacing:.04em;margin-top:2px;font-size:11px;font-weight:500;display:block}.top-actions{align-items:center;gap:10px;display:flex}.role-pill{background:var(--green-soft);color:var(--green);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700}.avatar{color:#fff;background:#d59a64;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.workspace{width:min(1180px,100% - 40px);margin:0 auto;padding:34px 0 54px}.mode-switch{border:1px solid var(--line);background:#fff9;border-radius:14px;gap:4px;margin-bottom:24px;padding:5px;display:inline-flex}.mode-switch button,.mode-switch a{cursor:pointer;color:var(--muted);text-align:center;background:0 0;border:0;border-radius:10px;padding:9px 16px;font-weight:700;text-decoration:none}.mode-switch button.active{background:var(--ink);color:#fff;box-shadow:0 5px 12px #19342d26}.practice-grid{grid-template-columns:270px minmax(0,1fr);align-items:start;gap:24px;display:grid}.panel{box-shadow:var(--shadow);background:#fffdf8eb;border:1px solid #19342d17;border-radius:22px}.side-panel{padding:22px}.eyebrow{color:var(--green);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800}.side-panel h2{margin:8px 0 6px;font-size:25px}.side-panel>p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.progress-ring{background:conic-gradient(var(--green) 0 36%, #e4e8e2 36% 100%);border-radius:50%;place-items:center;width:122px;height:122px;margin:24px auto;display:grid;position:relative}.progress-ring:after{content:"";background:var(--paper);border-radius:50%;position:absolute;inset:10px}.progress-ring strong,.progress-ring span{z-index:1;position:relative}.progress-ring strong{font-size:27px}.progress-ring span{color:var(--muted);margin-top:-30px;font-size:11px}.mini-stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mini-stat{background:#f3f6f2;border-radius:14px;padding:13px}.mini-stat strong{font-size:19px;display:block}.mini-stat span{color:var(--muted);font-size:12px}.side-note{border-top:1px solid var(--line);color:var(--muted);margin-top:16px;padding-top:16px;font-size:12px;line-height:1.6}.quiz-panel{overflow:hidden}.quiz-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.quiz-head span{color:var(--muted);font-size:13px}.quiz-head strong{font-size:14px}.question-body{padding:30px clamp(22px,5vw,54px) 24px}.question-meta{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.type-tag{background:var(--green-soft);color:var(--green);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.source-label{color:var(--muted);font-size:12px}.question-record-actions{flex-wrap:wrap;gap:9px;margin:-6px 0 18px;display:flex}.record-button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.record-button:hover{color:var(--green);border-color:#91ad9e}.record-button.active{color:#8a651c;background:#fff5d9;border-color:#d8b46a}.record-button.mistake.active{background:var(--red-soft);color:var(--red);border-color:#d5a1a1}.question-title{letter-spacing:.01em;margin:0 0 24px;font-size:clamp(18px,2.2vw,24px);line-height:1.7}.option-list{gap:12px;display:grid}.option{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:15px;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;width:100%;padding:14px 16px;transition:all .16s;display:grid}.option:hover{border-color:#9bb9aa;transform:translateY(-1px)}.option.selected{border-color:var(--green-2);background:#f0f8f3}.option.correct{border-color:var(--green-2);background:var(--green-soft)}.option.wrong{border-color:var(--red);background:var(--red-soft)}.option-letter{background:#eff2ee;border-radius:10px;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.option.selected .option-letter,.option.correct .option-letter{background:var(--green);color:#fff}.option.wrong .option-letter{background:var(--red);color:#fff}.option-text{line-height:1.55}.result-icon{color:var(--green);font-weight:900}.wrong .result-icon{color:var(--red)}.answer-note{color:var(--muted);background:#f4f7f3;border-radius:14px;margin-top:18px;padding:14px 16px;font-size:13px;line-height:1.6}.answer-note strong{color:var(--green)}.quiz-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:18px 24px 22px;display:flex}.button{cursor:pointer;border:0;border-radius:12px;padding:11px 17px;font-weight:800}.button.primary{background:var(--green);color:#fff;box-shadow:0 7px 16px #176b512e}.button.ghost{color:var(--ink);background:#edf1ed}.button:disabled{opacity:.45;cursor:not-allowed}.empty-practice{text-align:center;padding:48px 32px}.empty-practice h2{margin:10px 0 8px;font-size:25px}.empty-practice p{max-width:480px;color:var(--muted);margin:0 auto 22px;line-height:1.7}.admin-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px;display:flex}.admin-heading h1{margin:5px 0 0;font-size:clamp(27px,4vw,42px)}.admin-heading p{color:var(--muted);margin:0}.admin-grid{grid-template-columns:1.05fr .95fr;gap:22px;display:grid}.admin-card{padding:22px}.card-title{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title h2{margin:0;font-size:17px}.card-title span{color:var(--muted);font-size:12px}.upload-zone{text-align:center;cursor:pointer;background:#f2f7f3;border:1.5px dashed #91ad9e;border-radius:17px;padding:32px 20px;display:block}.upload-zone input{display:none}.upload-icon{background:var(--green);color:#fff;border-radius:15px;place-items:center;width:48px;height:48px;margin:0 auto 12px;font-size:24px;display:grid}.upload-zone strong{display:block}.upload-zone span{color:var(--muted);margin-top:6px;font-size:12px;display:block}.queue-summary{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.queue-summary span{color:var(--muted);background:#edf1ed;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.queue-summary .summary-done{color:var(--green);background:var(--green-soft)}.queue-summary .summary-duplicate{color:#5f6870;background:#e9ecef}.queue-summary .summary-error{color:var(--red);background:var(--red-soft)}.queue-summary .auto-review{color:var(--green);background:#fff;border:1px solid #91ad9e;margin-left:auto;padding:6px 10px;font-size:11px}.queue-summary .auto-review:not(:disabled):hover{background:var(--green-soft)}.queue-list{gap:10px;margin-top:16px;display:grid}.queue-item{text-align:left;background:#f6f6f2;border:1px solid #0000;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;padding:11px 13px;display:grid}.queue-item:disabled{color:inherit;opacity:1}.queue-item.reviewable{cursor:pointer}.queue-item.reviewable:hover,.queue-item.active{background:#f0f7f2;border-color:#91ad9e}.queue-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.queue-item span{color:var(--muted);font-size:11px}.status{border-radius:999px;padding:5px 8px;font-weight:800;font-size:11px!important}.status.done{color:var(--green);background:var(--green-soft)}.status.pending{color:var(--amber);background:#fff3d9}.status.review{color:#7a5a16;background:#fff1c9}.status.duplicate{color:#59636b;background:#e8ecef}.status.error{color:var(--red);background:var(--red-soft)}.connection{border-radius:999px;padding:5px 9px;font-weight:800}.connection.online{color:var(--green);background:var(--green-soft)}.connection.offline{color:var(--amber);background:#fff3d9}.pipeline{gap:12px;display:grid}.pipeline-step{grid-template-columns:32px 1fr;align-items:start;gap:12px;display:grid}.step-number{background:var(--ink);color:#fff;border-radius:10px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid}.pipeline-step strong{margin-bottom:3px;font-size:14px;display:block}.pipeline-step p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.review-card{grid-column:1/-1;padding:22px}.review-head{justify-content:space-between;align-items:start;gap:20px;margin-bottom:18px;display:flex}.review-head h2{margin:4px 0;font-size:22px}.review-head p{color:var(--muted);margin:0;font-size:12px}.review-grid{grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);align-items:start;gap:22px;display:grid}.review-preview{background:#e9ece5;border-radius:16px;place-items:center;min-height:360px;padding:12px;display:grid;overflow:hidden}.review-preview img{object-fit:contain;border-radius:10px;width:100%;max-height:620px;display:block}.preview-placeholder{color:var(--muted);font-size:13px}.review-form{gap:14px;display:grid}.field{gap:7px;display:grid}.field>span{color:var(--muted);font-size:12px;font-weight:700}.field input,.field textarea,.field select,.review-option>input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:11px;outline:none;padding:10px 12px}.field textarea{resize:vertical;line-height:1.65}.field input:focus,.field textarea:focus,.field select:focus,.review-option>input:focus{border-color:var(--green-2)}.review-options{gap:9px;display:grid}.review-option{grid-template-columns:48px minmax(0,1fr) 38px;gap:9px;display:grid}.answer-check{cursor:pointer;place-items:center;display:grid;position:relative}.answer-check input{opacity:0;pointer-events:none;position:absolute}.answer-check span{border:1px solid var(--line);background:#fff;border-radius:11px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.answer-check input:checked+span{border-color:var(--green);background:var(--green);color:#fff;box-shadow:0 6px 14px #176b512b}.option-remove{border:1px solid var(--line);width:38px;height:42px;color:var(--muted);cursor:pointer;background:#fff;border-radius:11px;font-size:20px;line-height:1}.option-remove:not(:disabled):hover{background:var(--red-soft);color:var(--red);border-color:#d6a1a1}.option-remove:disabled{opacity:.35;cursor:not-allowed}.review-option-actions{align-items:center;gap:10px;margin-top:10px;display:flex}.review-option-actions .button{padding:8px 11px;font-size:12px}.review-option-actions span{color:var(--muted);font-size:11px}.review-message{color:#7a5a16;background:#fff3d9;border-radius:11px;padding:10px 12px;font-size:12px}.review-actions{justify-content:space-between;align-items:center;gap:16px;padding-top:4px;display:flex}.review-actions>span{color:var(--muted);font-size:11px;line-height:1.5}.review-actions .button{flex:none}.bank-card{grid-column:1/-1;padding:0;overflow:hidden}.bank-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;display:flex}.bank-toolbar h2{margin:0;font-size:17px}.search{border:1px solid var(--line);background:#fff;border-radius:11px;outline:none;min-width:240px;padding:10px 13px}.search:focus{border-color:var(--green-2)}.bank-list{display:grid}.bank-row{border-bottom:1px solid #edf0eb;grid-template-columns:60px minmax(0,1fr) 88px 90px;align-items:center;gap:14px;padding:15px 22px;display:grid}.bank-row:last-child{border-bottom:0}.bank-row .qid{color:var(--muted);font-size:12px}.bank-row .qtext{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.bank-row .qanswer{color:var(--green);font-size:13px;font-weight:800}.bank-row .qtype{color:var(--muted);font-size:12px}.empty{text-align:center;color:var(--muted);padding:34px}@media (width<=820px){.topbar{padding:13px 18px}.brand small,.role-pill{display:none}.workspace{width:min(100% - 24px,680px);padding-top:18px}.practice-grid,.admin-grid{grid-template-columns:1fr}.side-panel{display:none}.mode-switch{width:100%}.mode-switch button{flex:1}.quiz-head,.quiz-footer{padding-left:16px;padding-right:16px}.question-body{padding:22px 16px}.option{grid-template-columns:34px 1fr auto;padding:12px}.admin-heading{flex-direction:column;align-items:start}.review-head{flex-direction:column;align-items:stretch}.review-grid{grid-template-columns:1fr}.review-preview{min-height:220px;max-height:460px}.review-actions,.bank-toolbar{flex-direction:column;align-items:stretch}.search{width:100%;min-width:0}.bank-row{grid-template-columns:44px minmax(0,1fr) 60px;padding:13px 14px}.bank-row .qtype{display:none}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
