:root{--bg: #f6f5f1;--surface: #ffffff;--text: #22232a;--muted: #6a6c78;--border: #e3e1da;--accent: #3b3f8f;--concept-bg: #ece4fb;--concept-strong: #7a4fd0;--concept-text: #4c2a96;--language-bg: #dcecfb;--language-strong: #2f7cc4;--language-text: #1b4f80;--radius: 10px;--shadow: 0 1px 2px rgba(20, 20, 40, .06), 0 4px 14px rgba(20, 20, 40, .05);--font-ui: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;--font-reading: "Iowan Old Style", "Charter", Georgia, "Songti SC", serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}.app{height:100%;display:flex;flex-direction:column}.topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar__brand{display:flex;align-items:baseline;gap:16px;min-width:0}.brand{font-weight:700;font-size:18px;color:var(--accent);letter-spacing:.01em;white-space:nowrap}.topbar__title{margin:0;font-size:15px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__actions{display:flex;align-items:center;gap:8px;flex:none}.mock-badge{font-size:12px;padding:4px 10px;border-radius:999px;background:#fff4d6;color:#7a5500;border:1px solid #f0d58a;white-space:nowrap}.layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr) minmax(250px,300px);position:relative}.center{overflow-y:auto;min-width:0}.side{min-height:0;display:flex;background:#faf9f6}.side--left{border-right:1px solid var(--border)}.side--right{border-left:1px solid var(--border)}@media(max-width:1099px){.layout{grid-template-columns:minmax(0,1fr)}.side{position:absolute;top:0;bottom:0;width:min(320px,86vw);z-index:5;box-shadow:0 6px 30px #14142826;transition:transform .2s ease}.side--left{left:0;transform:translate(-105%)}.side--right{right:0;transform:translate(105%)}.side--open{transform:none}}.btn{font:inherit;font-size:13px;padding:6px 12px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}.btn:disabled{opacity:.45;cursor:default}.btn--ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn--ghost:not(:disabled):hover{background:#f1efe9}.lang-switch{font:inherit;font-size:13px;padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.btn--toggle{background:transparent;color:var(--text)}.btn--concept{border-color:var(--concept-strong);color:var(--concept-text)}.btn--language{border-color:var(--language-strong);color:var(--language-text)}.btn--toggle[aria-expanded=true].btn--concept{background:var(--concept-bg)}.btn--toggle[aria-expanded=true].btn--language{background:var(--language-bg)}.reading{max-width:720px;margin:0 auto;padding:32px 40px 120px}.reading__hint{margin:0 0 20px;font-size:13px;color:var(--muted);-webkit-user-select:none;user-select:none}.reading__subtitle{margin:0 0 24px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);-webkit-user-select:none;user-select:none}.para{margin-bottom:18px}.para__text{margin:0;font-family:var(--font-reading);font-size:19px;line-height:1.75}.para--heading .para__text{font-weight:600;margin-top:28px}.para--item .para__text{padding-left:1.2em}.hl{color:inherit;border-radius:3px;padding:0;cursor:pointer;transition:box-shadow .15s,background-color .15s}.hl--concept{background:var(--concept-bg);border-bottom:2px solid var(--concept-strong)}.hl--language{background:var(--language-bg);border-bottom:2px dashed var(--language-strong)}.hl--active.hl--concept{box-shadow:0 0 0 2px var(--concept-strong)}.hl--active.hl--language{box-shadow:0 0 0 2px var(--language-strong)}.hl-pending{background:#f1efe6;outline:1px dashed #a9a38e;border-radius:3px}.hl-pending--loading{animation:pulse 1.2s ease-in-out infinite}.hl-pending--error{outline-color:#c4553b}@keyframes pulse{50%{background:#e6e1cf}}.status{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;padding:6px 10px;font-size:13px;border-radius:8px;background:#f3f1ea;color:var(--muted);-webkit-user-select:none;user-select:none}.status q{color:var(--text)}.status--error{background:#fcebe6;color:#8a2f1b}.status--unsupported{background:#f1f1f1}.status .btn{padding:3px 10px;font-size:12px}.status__spinner{width:12px;height:12px;border:2px solid #c9c4b2;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.panel{flex:1;display:flex;flex-direction:column;min-height:0;width:100%}.panel__header{flex:none;padding:18px 18px 12px;border-bottom:1px solid var(--border)}.panel__title{display:flex;align-items:center;gap:8px;margin:0;font-size:15px}.panel--concept .panel__title{color:var(--concept-text)}.panel--language .panel__title{color:var(--language-text)}.swatch{width:12px;height:12px;border-radius:3px}.swatch--concept{background:var(--concept-bg);border:2px solid var(--concept-strong)}.swatch--language{background:var(--language-bg);border:2px dashed var(--language-strong)}.panel__count{margin-left:auto;font-size:12px;font-weight:500;color:var(--muted)}.panel__desc{margin:4px 0 0;font-size:12px;color:var(--muted)}.panel__list{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.panel__empty{margin:8px 4px;font-size:13px;line-height:1.6;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,box-shadow .15s;outline:none}.card:focus-visible{box-shadow:0 0 0 3px #3b3f8f59}.card--concept.card--active{border:2px solid var(--concept-strong);padding:11px 13px}.card--language.card--active{border:2px solid var(--language-strong);padding:11px 13px}.card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.card__term{font-family:var(--font-reading);font-weight:600;font-size:16px}.tag{flex:none;font-size:11px;padding:2px 7px;border-radius:999px}.tag--concept{background:var(--concept-bg);color:var(--concept-text)}.tag--language{background:var(--language-bg);color:var(--language-text)}.card__gloss{margin:6px 0 4px;font-weight:600;font-size:14px}.card__explanation,.card__context{margin:0;font-size:13px;line-height:1.65}.card__context{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);color:var(--muted)}.toast-region{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:20;pointer-events:none}.toast{padding:10px 16px;border-radius:8px;background:#2b2d3a;color:#fff;font-size:13px;box-shadow:var(--shadow)}.devtools{position:fixed;right:16px;bottom:16px;z-index:10;font-size:12px;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:8px;padding:6px 10px;max-width:220px}.devtools summary{cursor:pointer}.devtools__row{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--text)}.devtools__hint{margin:6px 0 0;line-height:1.5}@media(max-width:720px){.topbar{flex-wrap:wrap;padding:10px 16px}.topbar__title{display:none}.reading{padding:24px 18px 120px}.para__text{font-size:18px}}.boot-error{max-width:560px;margin:15vh auto;padding:0 24px;line-height:1.7}.card__body{outline:none;border-radius:6px}.card__body:focus-visible{box-shadow:0 0 0 3px #3b3f8f59}.card__actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.save-state{flex:1;font-size:12px;color:var(--muted)}.save-state--unsaved{color:#8a5a00}.save-state--saved{color:#2f6b3a}.save-state--save-error{color:#8a2f1b}.btn--small{padding:3px 10px;font-size:12px}.load-banner{flex:none;display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 16px;font-size:13px;background:#f3f1ea;color:var(--muted)}.load-banner--error{background:#fcebe6;color:#8a2f1b}.devtools select{font:inherit;margin-left:auto}.auth-screen{min-height:100vh;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:48px;padding:48px 16px;color:var(--muted)}.auth-screen__intro{max-width:360px;line-height:1.7}.auth-screen__intro h1{margin:8px 0 12px;font-size:24px;color:var(--text)}.auth-screen__intro p{margin:0}a.brand{text-decoration:none}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn--large{font-size:15px;padding:10px 20px;border-radius:10px}.site{min-height:100%;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:24px;padding:14px 32px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.site-logo{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:18px;color:var(--accent);text-decoration:none}.site-logo__mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;font-size:14px}.site-nav{display:flex;gap:20px;flex:1}.site-nav a{color:var(--muted);text-decoration:none;font-size:14px}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text)}.site-header__actions{display:flex;align-items:center;gap:8px}.site-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:0 32px 64px}.site-footer{padding:24px 32px;text-align:center;font-size:13px;color:var(--muted);border-top:1px solid var(--border)}.eyebrow{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.hero{padding:88px 0 64px;max-width:720px}.hero__title{margin:0;font-size:44px;line-height:1.2;letter-spacing:-.01em}.hero__lead{margin:20px 0 32px;font-size:18px;line-height:1.7;color:var(--muted)}.hero__actions{display:flex;flex-wrap:wrap;gap:12px}.section-title{margin:0 0 20px;font-size:22px}.product-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.product-card{padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);line-height:1.7}.product-card h3{margin:0;font-size:22px}.product-card p{margin:12px 0;color:var(--muted)}.product-card__head{display:flex;align-items:center;gap:10px}.product-card__points{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:6px;font-size:14px}.product-card__points li{display:flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:50%}.dot--concept{background:var(--concept-strong)}.dot--language{background:var(--language-strong)}.product-card__actions{display:flex;flex-wrap:wrap;gap:10px}.product-card--soon{background:transparent;box-shadow:none;border-style:dashed}.pill{font-size:12px;padding:2px 10px;border-radius:999px;background:#fff4d6;color:#7a5500;border:1px solid #f0d58a}.pricing{padding:64px 0 0}.pricing__title{margin:0;font-size:36px}.pricing__lead{margin:12px 0 28px;font-size:17px;color:var(--muted)}.pricing__notice{margin-bottom:20px;padding:12px 16px;border-radius:var(--radius);background:#eef0fb;border:1px solid #cfd3f0;color:var(--accent)}.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,340px));gap:20px;align-items:stretch}.plan{position:relative;display:flex;flex-direction:column;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.plan--highlighted{border:2px solid var(--accent)}.plan__badge{position:absolute;top:-12px;left:24px;padding:2px 10px;font-size:12px;border-radius:999px;background:var(--accent);color:#fff}.plan__name{margin:0;font-size:20px}.plan__audience{margin:6px 0 16px;font-size:14px;color:var(--muted)}.plan__price{margin:0 0 20px;display:flex;align-items:baseline;gap:6px}.plan__amount{font-size:34px;font-weight:700}.plan__unit{color:var(--muted)}.plan__per-seat{margin:-12px 0 20px;font-size:13px;color:var(--muted)}.plan__features{flex:1;margin:0 0 24px;padding-left:18px;line-height:1.9;font-size:14px}.pricing__footnote{margin-top:24px;font-size:13px;color:var(--muted)}.auth-page{display:flex;justify-content:center;padding:64px 0}.auth-card{max-width:440px;padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);line-height:1.7}.auth-card h1{margin:0 0 8px;font-size:24px}.auth-card p{margin:0 0 20px;color:var(--muted)}.not-found{padding:96px 0;text-align:center}@media(max-width:760px){.site-header{flex-wrap:wrap;gap:12px;padding:12px 16px}.site-nav{order:3;flex-basis:100%}.site-header__actions{margin-left:auto}.site-main{padding:0 16px 48px}.hero{padding:48px 0 40px}.hero__title{font-size:30px}.product-grid,.plan-grid{grid-template-columns:1fr}.plan-grid{gap:28px}}.billing{padding:64px 0 0}.billing__card{max-width:560px;margin-top:24px}.billing__status{font-weight:600}.billing__status--active{color:#1f7a4d}.billing__actions{display:flex;flex-wrap:wrap;gap:10px}.admin{padding:64px 0 0;max-width:760px}.admin .auth-card{margin-top:24px}.admin-panel{margin-top:24px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.admin-panel h2{margin:0 0 12px;font-size:17px}.admin-seats{margin:0 0 10px;color:var(--muted)}.admin-seats strong{font-size:28px;color:var(--text)}.seat-bar{height:8px;border-radius:999px;background:#ecebe6;overflow:hidden}.seat-bar__fill{height:100%;background:var(--accent)}.admin-hint{margin:0 0 12px;font-size:14px;color:var(--muted)}.admin-warning{margin:12px 0 0;font-size:14px;color:#9a3412}.invite-row{display:flex;gap:8px;margin-bottom:12px}.invite-link{flex:1;min-width:0;font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#faf9f6}.invite-code{font-size:15px;letter-spacing:.12em;color:var(--text)}.confirm-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:14px;color:var(--muted)}.member-table{width:100%;border-collapse:collapse;font-size:14px}.member-table th{text-align:left;font-weight:500;color:var(--muted);padding:8px 0;border-bottom:1px solid var(--border)}.member-table td{padding:10px 0;border-bottom:1px solid var(--border)}.member-table__action{text-align:right;white-space:nowrap}.member-table__action .btn+.btn{margin-left:6px}.btn--danger{background:#b42318;border-color:#b42318}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.join-form{display:grid;gap:14px}.join-form p{margin:0}.field{display:grid;gap:6px;font-size:14px;color:var(--muted)}.field input{font:inherit;font-size:15px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;color:var(--text)}@media(max-width:760px){.invite-row{flex-direction:column}}
