@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;700&display=swap");:root{--bg:#f7f6f0;--panel:#ffffff;--ink:#171717;--muted:#68645d;--line:#d9d4ca;--accent:#226f54;--accent-strong:#174f3c;--warm:#f4b860;--shadow:0 24px 80px rgba(31,31,31,0.12)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:linear-gradient(180deg,rgba(34,111,84,.08),transparent 320px),var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;place-items:center;padding:clamp(18px,4vw,48px)}.deck{width:min(1040px,100%);display:grid;grid-template-rows:auto minmax(360px,1fr) auto;grid-gap:20px;gap:20px}.toolbar{display:grid;grid-template-columns:auto 1fr auto;grid-gap:14px;gap:14px;align-items:center}.modes,.segment{display:flex;align-items:center;gap:8px;min-width:0}.modes{justify-content:center;flex-wrap:wrap}.arrow-button,.mode-button,.segment-button{border:1px solid var(--line);background:rgba(255,255,255,.72);color:var(--ink);cursor:pointer;min-height:44px;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.mode-button,.segment-button{border-radius:8px;padding:0 14px;white-space:nowrap}.arrow-button:hover,.mode-button:hover,.segment-button:hover,.semester-select:hover{border-color:var(--accent)}.mode-button.is-active,.segment-button.is-active{background:var(--accent);border-color:var(--accent);color:white}.semester-select{min-height:44px;width:min(220px,100%);border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.82);color:var(--ink);padding:0 12px}.word-stage{grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;grid-gap:18px;gap:18px}.word-panel,.word-stage{min-height:360px;display:grid}.word-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);place-items:center;padding:clamp(28px,7vw,72px);overflow:hidden}.word-text{margin:0;width:100%;color:#b5b5b5;font-weight:400;letter-spacing:.08em;text-align:center;overflow-wrap:anywhere;line-height:1.35}.word-text.en{font-family:Verdana,Geneva,sans-serif;font-size:clamp(66px,15vw,168px)}.word-text.zh{font-family:KaiTi,STKaiti,楷体,Noto Sans SC,serif;font-size:clamp(72px,16.5vw,183px)}.word-text strong{color:var(--ink);font-weight:700}.arrow-button{width:64px;aspect-ratio:1;border-radius:50%;font-size:30px;line-height:1}.arrow-button:active,.mode-button:active,.segment-button:active{transform:translateY(1px)}.deck-footer{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:14px;min-height:28px}.date-pill{border:1px solid var(--line);background:rgba(255,255,255,.64);border-radius:999px;padding:5px 10px}.empty-state{font-family:Verdana,Noto Sans SC,sans-serif;font-size:clamp(24px,5vw,46px);color:var(--muted)}.admin-shell{min-height:100vh;padding:clamp(18px,4vw,48px)}.admin-panel{width:min(940px,100%);margin:0 auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:clamp(22px,5vw,44px)}.admin-actions,.admin-heading,.upload-row,.upload-summary{display:flex;align-items:center;gap:14px}.admin-heading{justify-content:space-between;margin-bottom:28px}.admin-heading h1{margin:0;font-size:clamp(28px,5vw,44px)}.admin-heading a{color:var(--accent);font-weight:700;text-decoration:none}.field-label{display:block;margin:18px 0 8px;color:var(--muted);font-weight:700}.csv-input,.text-input{width:100%;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:12px 14px}.csv-input{min-height:320px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5}.upload-row{margin:14px 0 8px;color:var(--muted)}.danger-button,.primary-button,.secondary-button{min-height:44px;border-radius:8px;cursor:pointer;padding:0 16px}.primary-button{border:1px solid var(--accent);background:var(--accent);color:white}.secondary-button{border:1px solid var(--accent);background:white;color:var(--accent)}.danger-button{border:1px solid #b23b3b;background:white;color:#9f3030}.danger-button:disabled,.primary-button:disabled,.secondary-button:disabled{border-color:var(--line);background:var(--line);color:var(--muted);cursor:not-allowed}.admin-actions{margin-top:18px}.admin-status{color:var(--muted)}.upload-summary{flex-wrap:wrap;margin-top:18px}.csv-format,.upload-summary span{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:rgba(255,255,255,.72)}.csv-format{display:grid;grid-gap:8px;gap:8px;margin-top:22px;color:var(--muted)}.csv-format code{color:var(--ink);white-space:normal}.list-panel,.manual-panel{border-top:1px solid var(--line);margin-top:28px;padding-top:26px}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.list-heading h2{margin:0;font-size:24px}.filter-grid{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(150px,1fr) minmax(180px,1fr) auto;grid-gap:12px;gap:12px;align-items:end}.filter-grid label{color:var(--muted);display:grid;grid-gap:8px;gap:8px;font-weight:700}.manual-grid{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) minmax(150px,1fr);grid-gap:12px;gap:12px}.manual-grid label{color:var(--muted);display:grid;grid-gap:8px;gap:8px;font-weight:700}.word-table-wrap{border:1px solid var(--line);border-radius:8px;margin-top:18px;max-height:420px;overflow:auto}.word-table{border-collapse:collapse;width:100%}.word-table td,.word-table th{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top}.word-table th{background:#f3f1ea;color:var(--muted);font-size:13px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.word-table td{overflow-wrap:anywhere}.word-table tbody tr{cursor:pointer}.word-table tbody tr.is-selected,.word-table tbody tr:hover{background:rgba(34,111,84,.08)}@media (max-width:760px){.toolbar{grid-template-columns:1fr}.modes,.segment{justify-content:stretch}.mode-button,.segment-button{flex:1 1 auto}.semester-select{width:100%}.word-stage{grid-template-columns:48px minmax(0,1fr) 48px;gap:10px}.arrow-button{width:48px;font-size:24px}.admin-actions,.admin-heading,.list-heading,.upload-row{align-items:stretch;flex-direction:column}.filter-grid,.manual-grid{grid-template-columns:1fr}}