/* Zhijing UI aligned with DSH v0.1.1-rc.2: neutral-bluish surfaces,
   system font, 780px composer, 22px capsule and 34px blue send control. */
*{box-sizing:border-box} :root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei','Helvetica Neue',Arial,sans-serif;font-synthesis:none;color:#0f1115;background:#fff;color-scheme:light;--muted:#81858c;--accent:#4176e6;--line:rgba(0,0,0,.1);--sidebar:240px}body{margin:0;font-size:14px}button,input,textarea,select{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:hover{background:#f1f3f5}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #4176e6;outline-offset:3px}button svg,span[data-icon] svg{display:block;width:18px;height:18px;flex:none}[hidden]{display:none!important}.rail{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#f9fafb;border-right:1px solid rgba(0,0,0,.04);padding:6px 12px;display:flex;flex-direction:column;z-index:5}.sidebar-brand{height:68px;display:flex;align-items:center;gap:8px;padding:8px 4px}.brand-icon{display:flex;align-items:center;gap:8px;flex:1;font-size:18px;font-weight:600;letter-spacing:.04em}.brand-icon img{width:28px;height:28px}.collapse-button{width:28px;height:28px;padding:5px;border-radius:50%;color:#61666b}.rail nav{display:grid;gap:4px}.rail-button{display:flex;align-items:center;gap:10px;min-height:38px;width:100%;padding:9px 12px;border-radius:10px;text-align:left;white-space:nowrap;font-size:14px}.rail-button.active{background:#e9ecf2;margin-bottom:10px}.rail-button:hover{background:#ebeff3}.rail-button kbd{margin-left:auto;background:none;color:#81858c}.rail-bottom{margin-top:auto;margin-bottom:10px}.sidebar-resources{margin-top:30px}.sidebar-label{font-size:12px;color:#81858c;padding:8px 12px}.page{margin-left:var(--sidebar)}header{height:64px;padding:16px 24px;display:flex;justify-content:flex-end;align-items:center}.quiet-button{display:flex;align-items:center;gap:8px;font-size:13px;color:#81858c;padding:6px 8px;border-radius:8px}.quiet-button svg{width:16px;height:16px}.quiet-button kbd{margin-left:6px}kbd{font:12px 'Segoe UI',sans-serif;border:1px solid #e1e5ee;border-radius:4px;min-width:18px;display:inline-block;text-align:center;padding:0 4px;color:#81858c}#home{min-height:calc(100dvh - 64px);display:flex;align-items:center;justify-content:center;padding:24px 32px 110px;position:relative}.launch{width:100%;max-width:780px;transform:translateY(-10px)}.intro{text-align:center;margin-bottom:24px}.intro h1{display:flex;justify-content:center;align-items:center;gap:10px;font-size:26px;line-height:32px;font-weight:500;margin:0}.intro h1 img{width:34px;height:34px}.hero-name{letter-spacing:-.5px}.intro p{font-size:14px;line-height:20px;color:#81858c;margin:16px 0 0}.composer{position:relative;width:100%;padding-top:10px;border:1px solid rgba(0,0,0,.1);border-radius:22px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.035);font-size:16px;line-height:24px}.composer:focus-within{border-color:#b5c1d3;box-shadow:0 4px 20px rgba(0,0,0,.045)}textarea{display:block;width:100%;min-height:66px;max-height:180px;resize:none;outline:0;border:0;background:none;color:#0f1115;font-size:16px;line-height:24px;padding:6px 20px 8px;caret-color:#4176e6}textarea::placeholder{color:#adb2b8}.composer-bottom{display:flex;align-items:center;gap:8px;padding:6px 12px 12px}.add-button{width:28px;height:28px;display:grid;place-items:center;background:#f1f3f5;border-radius:50%;padding:0}.composer-hint{font-size:12px;color:#81858c}.composer-actions{margin-left:auto;display:flex;align-items:center;gap:14px}select{border:0;background:none;color:#61666b;font-size:13px;cursor:pointer;max-width:140px;padding:4px}select option{background:#fff}.submit-button{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#4176e6;color:#fff;padding:0}.submit-button:hover{background:#679efe}.below-composer{display:flex;justify-content:space-between;gap:12px;padding:10px 10px 0;font-size:12px;line-height:20px;color:#81858c}.separator{margin:0 5px}.quick-links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}.quick-links button{display:flex;align-items:center;gap:7px;border:1px solid rgba(0,0,0,.1);border-radius:18px;padding:7px 13px;line-height:20px;font-size:13px;color:#61666b}.quick-links svg{width:16px;height:16px}.tiny-slash{font-size:12px;color:#979da6;margin-left:3px}footer{position:absolute;bottom:20px;left:16px;right:16px;text-align:center;font-size:12px;color:#979da6;line-height:20px}.suggestions{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:10;padding:6px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 32px #00000014;max-height:310px;overflow:auto}.suggestion{width:100%;display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;text-align:left}.suggestion[aria-selected=true],.suggestion:hover{background:#f1f3f5}.suggestion-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:#61666b;background:#f5f6f7}.suggestion strong{font-size:14px;font-weight:500}.suggestion small{display:block;font-size:12px;color:#81858c;line-height:18px;margin-top:2px}.suggestion code{margin-left:auto;font-size:12px;color:#81858c}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}dialog{width:min(600px,calc(100% - 32px));max-height:85dvh;padding:28px;border:1px solid #e5e5e5;border-radius:24px;background:#fff;color:#0f1115;box-shadow:0 20px 70px #0002}dialog::backdrop{background:rgba(0,0,0,.24)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-heading h2{font-size:20px;font-weight:600;margin:0}.icon-button{padding:6px;border-radius:50%;color:#61666b}.panel-intro{font-size:14px;line-height:1.8;color:#81858c}.command-list{display:grid;gap:4px}.command-list button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;text-align:left;border-radius:12px}.command-list strong{font-size:14px;font-weight:500}.command-list small{display:block;font-size:12px;line-height:18px;color:#81858c;margin-top:4px}.command-list code{margin-left:auto;color:#4176e6;font-size:12px}.setting-label{display:block;font-size:14px;margin:20px 0 8px}.setting-input{width:100%;max-width:none;background:#f5f6f7;border:1px solid #e5e5e5;border-radius:12px;padding:12px;color:#0f1115;font-size:14px}.primary{background:#0f1115;color:#fff;padding:10px 20px;border-radius:22px;font-size:14px}.primary:hover{background:#43454a}.text-button{font-size:13px;color:#4176e6;padding:8px;border-radius:8px}.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%);max-width:90%;padding:13px 20px;background:#fff;border:1px solid #e1e5ee;border-radius:12px;box-shadow:0 8px 32px #0002;color:#0f1115;z-index:30;font-size:14px}.empty{padding:26px 0;text-align:center;color:#81858c;font-size:14px}.practice-wrap{max-width:780px;margin:80px auto;padding:0 24px}.practice-wrap h1{font-size:26px;font-weight:500;margin:12px 0}.eyebrow{font-size:12px;color:#81858c;letter-spacing:1px}.practice-meta{display:flex;justify-content:space-between;color:#81858c;font-size:13px;margin:28px 0 16px}.terminal-box{background:#fff;border:1px solid #e1e5ee;border-radius:22px;overflow:hidden}.terminal-top{padding:14px 22px;background:#f5f6f7;font-size:13px;color:#61666b}.terminal-body{padding:24px}.terminal-body p{font-size:14px;line-height:1.8;color:#81858c}.terminal-input-row{display:flex;align-items:center;gap:12px;margin-top:20px;color:#4176e6}.terminal-input-row input{min-width:0;flex:1;border:0;border-bottom:1px solid #cfD3d6;outline:none;background:none;color:#0f1115;padding:12px 0;font-family:Consolas,monospace;font-size:16px}.terminal-input-row input:focus{border-color:#4176e6}.practice-feedback{min-height:56px;padding-top:18px;font-size:14px;line-height:1.7;color:#4176e6}.practice-actions{display:flex;align-items:center;justify-content:space-between}.error{color:#d73535!important}.hint{font-size:14px;line-height:1.8;color:#81858c}.sidebar-collapsed{--sidebar:56px}.sidebar-collapsed .rail{padding:18px 10px 6px}.sidebar-collapsed .sidebar-brand{height:auto;padding:0;flex-direction:column;margin-bottom:12px;gap:12px}.sidebar-collapsed .brand-icon{flex:none}.sidebar-collapsed .brand-icon span,.sidebar-collapsed .nav-label,.sidebar-collapsed .rail kbd,.sidebar-collapsed .sidebar-label{display:none}.sidebar-collapsed .rail-button{width:36px;height:36px;min-height:36px;padding:9px;justify-content:center}.sidebar-collapsed .rail nav{gap:12px}.sidebar-collapsed .rail-button.active{margin:0}.sidebar-collapsed .sidebar-resources{display:none}@media(max-width:900px){:root{--sidebar:200px}.sidebar-collapsed{--sidebar:56px}#home{padding-left:24px;padding-right:24px}.composer-hint{display:none}}@media(max-width:640px){:root{--sidebar:56px}.rail{padding:18px 10px 6px}.sidebar-brand{height:36px;padding:0;margin-bottom:12px}.brand-icon{flex:none}.brand-icon span,.nav-label,.rail kbd,.sidebar-resources,.collapse-button{display:none}.rail-button{width:36px;height:36px;min-height:36px;justify-content:center;padding:9px}.rail nav{gap:12px}.rail-button.active{margin-bottom:0}header{height:56px;padding:12px 14px}.quiet-button{font-size:12px}.quiet-button kbd{display:none}#home{min-height:calc(100dvh - 56px);padding:24px 16px 90px}.launch{transform:none}.intro h1{font-size:24px}.intro p{font-size:13px}.composer{border-radius:22px}textarea{font-size:14px;padding:6px 16px 8px;min-height:86px}.composer-bottom{padding:4px 10px 10px}.composer-actions{gap:8px}select{font-size:12px;max-width:122px}.below-composer{font-size:11px;padding:9px 2px 0;flex-wrap:wrap;gap:2px}.quick-links{gap:8px;margin-top:20px}.quick-links button{font-size:12px;padding:6px 11px}.tiny-slash{display:none}footer{font-size:11px;bottom:16px}.practice-wrap{margin:35px auto;padding:0 16px}.terminal-body{padding:16px}dialog{padding:20px}.command-list button{padding:10px 4px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Both themes share geometry; the dark palette follows DSH's bluish neutrals. */
header{gap:12px}.theme-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:13px;color:#61666b;min-height:32px}.theme-track{display:block;width:34px;height:20px;border-radius:20px;background:#cfd3d6;padding:3px}.theme-knob{display:block;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .16s}.theme-toggle[aria-checked=true] .theme-track{background:#679efe}.theme-toggle[aria-checked=true] .theme-knob{transform:translateX(14px)}
:root[data-theme=dark]{color-scheme:dark;background:#151517;color:#f9fafb;--muted:#adb2b8;--accent:#679efe;--line:rgba(255,255,255,.12)}
[data-theme=dark] .rail{background:#1b1b1c;border-color:#ffffff0a}
[data-theme=dark] .brand-icon img,[data-theme=dark] .intro h1 img{filter:invert(1)}
[data-theme=dark] button:hover{background:#353638}
[data-theme=dark] .rail-button.active{background:#43454a}
[data-theme=dark] .rail-button:hover{background:#2c2c2e}
[data-theme=dark] :is(.collapse-button,.quiet-button,.theme-toggle,.sidebar-label,.intro p,.composer-hint,.below-composer,.suggestion small,.suggestion code,.panel-intro,.command-list small,.empty,.eyebrow,.practice-meta,.terminal-body p,.hint){color:#adb2b8}
[data-theme=dark] kbd{color:#adb2b8;border-color:#43454a}
[data-theme=dark] .composer{background:#2c2c2e;border-color:#ffffff0f;box-shadow:0 4px 16px #0002}
[data-theme=dark] .composer:focus-within{border-color:#61666b;box-shadow:0 4px 20px #0003}
[data-theme=dark] textarea{color:#f9fafb;caret-color:#679efe}
[data-theme=dark] textarea::placeholder{color:#979da6}
[data-theme=dark] .add-button{background:#353638;color:#f9fafb}
[data-theme=dark] select{color:#cfd3d6}
[data-theme=dark] select option{background:#2c2c2e;color:#f9fafb}
[data-theme=dark] .submit-button{background:#679efe;color:#151517}
[data-theme=dark] .submit-button:hover{background:#86b1ff}
[data-theme=dark] .quick-links button{border-color:#ffffff1f;color:#cfd3d6}
[data-theme=dark] :is(.tiny-slash,footer){color:#979da6}
[data-theme=dark] .suggestions{background:#2c2c2e;border-color:#ffffff1f;box-shadow:0 8px 32px #0005}
[data-theme=dark] :is(.suggestion[aria-selected=true],.suggestion:hover,.suggestion-icon){background:#353638}
[data-theme=dark] .suggestion-icon{color:#cfd3d6}
[data-theme=dark] dialog{background:#232324;color:#f9fafb;border-color:#ffffff1f;box-shadow:0 20px 70px #0006}
[data-theme=dark] dialog::backdrop{background:#0008}
[data-theme=dark] .icon-button{color:#cfd3d6}
[data-theme=dark] :is(.command-list code,.text-button,.terminal-input-row,.practice-feedback){color:#679efe}
[data-theme=dark] .setting-input{background:#1b1b1c;border-color:#43454a;color:#f9fafb}
[data-theme=dark] .primary{background:#f9fafb;color:#151517}
[data-theme=dark] .primary:hover{background:#cfd3d6}
[data-theme=dark] .toast{background:#43454a;border-color:#61666b;color:#f9fafb}
[data-theme=dark] .terminal-box{background:#232324;border-color:#43454a}
[data-theme=dark] .terminal-top{background:#2c2c2e;color:#cfd3d6}
[data-theme=dark] .terminal-input-row input{color:#f9fafb;border-color:#61666b}
[data-theme=dark] .terminal-input-row input:focus{border-color:#679efe}
[data-theme=dark] .error{color:#f25a5a!important}
@media(max-width:640px){header{gap:4px}.theme-toggle{font-size:12px}}
/* Minimal home: one title, one composer, contextual feedback only. */
.theme-toggle{width:36px;height:36px;min-height:36px;padding:8px;display:grid;place-items:center;border-radius:50%;color:#61666b}.theme-toggle svg{width:20px;height:20px}.intro{margin-bottom:28px}.below-composer{min-height:30px;padding-top:10px}.below-composer:has(#preview:empty){visibility:hidden}.launch{transform:translateY(-16px)}
/* Engine menu: neutral surfaces, quiet hover, no native select chrome. */
.engine-picker{position:relative}#engine-trigger{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;font-size:12px;color:#61666b;line-height:20px}#engine-trigger svg{width:14px;height:14px}#engine-trigger:hover,#engine-trigger[aria-expanded=true]{background:#00000006}#engine-menu{position:absolute;bottom:calc(100% + 9px);right:0;width:148px;padding:5px;border-radius:12px;border:1px solid #0000000f;background:#fff;box-shadow:0 8px 28px #00000014;z-index:12}#engine-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;border-radius:7px;padding:8px 10px;font-size:13px;line-height:20px;text-align:left;color:#43454a}#engine-menu button:hover,#engine-menu button:focus-visible{background:#f1f3f5;outline:0;box-shadow:none}.engine-check{font-size:13px;opacity:0;color:#81858c}#engine-menu [aria-checked=true] .engine-check{opacity:1}button:focus:not(:focus-visible){outline:none;box-shadow:none}button:focus-visible,a:focus-visible{outline:1px solid #979da6;outline-offset:3px}.composer:focus-within{border-color:#00000026}.composer:has(#query:focus){border-color:#b5c1d3}[data-theme=dark] #engine-trigger{color:#adb2b8}[data-theme=dark] #engine-trigger:hover,[data-theme=dark] #engine-trigger[aria-expanded=true]{background:#ffffff06}[data-theme=dark] #engine-menu{background:#2c2c2e;border-color:#ffffff0d;box-shadow:0 10px 32px #0004}[data-theme=dark] #engine-menu button{color:#cfd3d6}[data-theme=dark] #engine-menu button:hover,[data-theme=dark] #engine-menu button:focus-visible{background:#ffffff08}[data-theme=dark] .engine-check{color:#adb2b8}[data-theme=dark] .composer:focus-within{border-color:#ffffff0f}[data-theme=dark] .composer:has(#query:focus){border-color:#ffffff24}.intro h1{font-size:28px;font-weight:500;letter-spacing:-.8px;gap:11px}.intro h1 img{width:32px;height:32px}
/* Zhijing identity: a rounded-square path and a Chinese wordmark. */
.intro h1{gap:14px;align-items:center}.intro h1 .brand-symbol{width:42px;height:42px;flex:none}.intro h1 .brand-lettering{width:100px;height:50px;flex:none}.brand-icon{gap:10px}.brand-icon>img{width:28px;height:28px;flex:none}.brand-icon .brand-wordmark{display:flex;align-items:center}.brand-icon .brand-wordmark img{width:60px;height:30px}.sidebar-collapsed .brand-icon .brand-wordmark{display:none}@media(max-width:640px){.brand-icon .brand-wordmark{display:none}.intro h1{gap:12px}.intro h1 .brand-symbol{width:36px;height:36px}.intro h1 .brand-lettering{width:88px;height:44px}}
