:root{--navy:#102839;--deep:#0a1b28;--gold:#f0ce86;--muted:#a9c1cf;--panel:#163346;--line:#355064;--red:#ffb8a7;--green:#a0dfbd;--white:#f5f4ed;font:24px/1.55 system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--deep);color:var(--white)}[hidden]{display:none!important}h1,h2,p{margin:0 0 .55rem}h1{font-size:1.5rem;font-weight:650;letter-spacing:.05em}h2{font-size:1.15rem}a{color:var(--gold);overflow-wrap:anywhere}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--white);padding:.45rem .65rem;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;text-decoration:none}button:disabled{opacity:.45;cursor:wait}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,.button:focus-within{outline:3px solid var(--gold);outline-offset:3px}input,select,textarea{max-width:100%;width:100%;background:var(--deep);color:var(--white);border:1px solid var(--line);padding:.45rem;border-radius:10px}textarea{resize:vertical}label{display:block;margin:.45rem 0}.gold{background:var(--gold);color:var(--deep);border-color:var(--gold);font-weight:700}.quiet{background:transparent;border-color:transparent;color:var(--muted)}.mast{max-width:1260px;margin:auto;padding:1.1rem 1rem .7rem;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:.58rem;font-weight:650;letter-spacing:.14em;color:var(--gold)}main{max-width:840px;margin:auto;padding:.4rem .7rem}#admin{max-width:1260px}.card{border:1px solid var(--line);border-radius:18px;background:var(--navy);padding:.85rem;margin-bottom:.7rem;box-shadow:0 8px 30px #0001}.login{max-width:600px;margin:2rem auto}.login form{margin-top:1.2rem}.login button{width:100%;margin:.6rem 0}.small,small{font-size:.7rem;color:var(--muted);line-height:1.5}.badge{font-size:.64rem;background:#f0ce861b;color:var(--gold);padding:.15rem .4rem;border:1px solid #f0ce8640;border-radius:6px;display:inline-block}.modebar{display:flex;gap:.4rem;margin-bottom:.7rem}.modebar button{flex:1;line-height:1.35}.modebar .selected{border-color:var(--gold);background:#f0ce861b;color:var(--gold)}.sync{border-left:4px solid var(--gold)}.sync p{margin-top:.25rem}.cardhead{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.action{color:var(--gold);font-weight:650}.progress .small{margin-top:.6rem;margin-bottom:.12rem}.alert,.warning{background:#752f263e;border:1px solid #c57058;color:var(--red);padding:.6rem;border-radius:10px;margin:.6rem 0}.warning{max-width:1220px;margin:.5rem auto}.notice{position:sticky;top:0;z-index:20;max-width:1260px;margin:auto;background:#edd5a1;color:#102839;padding:0 .7rem;white-space:pre-wrap}.notice:not(:empty){padding:.45rem .7rem;border-radius:8px}.notice:empty{display:none}summary{cursor:pointer;color:var(--gold);padding:.4rem 0}.docline{padding:.55rem 0;border-bottom:1px solid var(--line)}.docline p{font-size:.85rem;line-height:1.5}.status{font-size:.72rem;color:var(--muted)}#conversation{padding-bottom:350px}.bubble{margin:.75rem 0;padding:.75rem;border:1px solid var(--line);border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--panel)}.bubble.user{margin-left:1.3rem;background:#203545}.bubble.ai{margin-right:.4rem;border-left:3px solid var(--gold)}.bubble .small{display:block;margin-bottom:.35rem}.bubble button{font-size:.8rem;margin-top:.5rem;margin-right:.3rem}.composer{position:fixed;z-index:10;bottom:0;left:0;right:0;background:#102839f7;border-top:1px solid var(--line);padding:.45rem .7rem max(.35rem,env(safe-area-inset-bottom));backdrop-filter:blur(15px)}.compose-inner{max-width:808px;margin:auto}.upload-row,.text-row,.record-settings{display:flex;gap:.4rem;align-items:center}.upload-row .button{font-size:.8rem;margin:.05rem 0 .3rem}.text-row textarea{flex:1;min-width:0;resize:none;font-size:.9rem}.text-row button{align-self:stretch}.record-settings{font-size:.68rem;margin:.2rem 0}.record-settings select{width:auto;padding:.15rem .3rem;flex:1}.record-settings label{white-space:nowrap}.record-settings button{font-size:.65rem;min-height:35px;padding:.1rem .3rem}.record{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;min-height:64px;width:100%;font-size:1.06rem;background:var(--gold);color:var(--deep);font-weight:750;border:0}.record.active{background:#f39176}.composer .small{margin:.2rem 0 0;font-size:.58rem}#previews{display:flex;gap:.3rem;overflow:auto;max-height:110px}.preview{font-size:.65rem;display:flex;align-items:center;gap:.25rem;min-width:0;background:var(--deep);border-radius:8px;margin-bottom:.3rem;padding:.15rem .3rem}.preview img{width:48px;height:48px;object-fit:cover;border-radius:5px}.preview span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview button{min-height:32px;padding:0 .3rem;font-size:.8rem}.columns{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.columns>*{min-width:0}.grid-docs{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.grid-docs .docline{border:1px solid var(--line);border-radius:10px;padding:.5rem}.admin-banner{display:flex;justify-content:space-between;align-items:center;margin:1rem 0}.admin-banner>span{font-size:.65rem}.logentry{border-bottom:1px solid var(--line);padding:.6rem 0;font-size:.8rem;overflow-wrap:anywhere;white-space:pre-wrap}.logentry details{font-size:.73rem}.logentry a{font-size:.65rem;display:block}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.grid-form button{align-self:end}.check{display:flex;align-items:flex-start;gap:.35rem;font-size:.8rem}.check input{width:24px;height:24px;flex:none;margin-top:.2rem}pre{white-space:pre-wrap;overflow-wrap:anywhere;font: .72rem/1.6 inherit}footer{text-align:center;padding:1rem;font-size:.6rem;color:var(--muted)}#admin textarea{font-size:.8rem}#sources a{display:block;margin:.4rem 0}#dadLog,#momLog{max-height:650px;overflow:auto}#reviewForm label{font-size:.8rem}@media(max-width:650px){.mast{padding:.7rem .7rem .3rem}.eyebrow{font-size:.5rem}h1{font-size:1.25rem}.card{padding:.65rem}.columns,.grid-form{grid-template-columns:1fr}.grid-docs{grid-template-columns:1fr 1fr}.modebar button{font-size:.8rem;padding:.5rem .3rem}.upload-row .button{font-size:.7rem;padding:.35rem .45rem}.record-settings{font-size:.59rem}.admin-banner{display:block}#conversation{padding-bottom:370px}.login{margin:1rem 0}.grid-docs .docline p{font-size:.7rem}}
.upload-row #send{margin-left:auto;font-size:.8rem;align-self:stretch;margin-bottom:.3rem}.text-row{margin-bottom:.3rem}.sync small{display:block}.sync p{margin-bottom:.2rem}#currentDoc{white-space:pre-line;font-size:.85rem}

.mast #logout{flex:none;white-space:nowrap}.mast h1{font-size:1.2rem}.warning{font-size:.8rem}.record-settings #keyboard{white-space:nowrap}#hearAction{font-size:.72rem;padding:.1rem .2rem;min-height:40px}
.dropzone{border:2px dashed var(--gold,#d5b277);padding:1.2rem;border-radius:16px;margin:1rem 0}.dropzone.dragging{background:#23455b}.vault-item{padding:1rem 0;border-bottom:1px solid #3b5667}.vault-item button{margin:.3rem}.hash{font:14px monospace;overflow-wrap:anywhere}.searchbar{display:flex;gap:.6rem;flex-wrap:wrap}.searchbar input{flex:1;min-width:180px}#vaultList{max-height:600px;overflow:auto}#referenceBody p{white-space:pre-wrap}#vaultResults pre,#clientSearchResults pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:500px;overflow:auto}#vaultDrop input{max-width:100%}#calibrationList p{white-space:pre-wrap}.composer label.small{display:flex;gap:8px;align-items:center;font-size:16px}.composer label.small select{font-size:16px;max-width:190px} .upload-row label.button{font-size:20px} 
@media(max-width:600px){.upload-row label.button:first-child{flex:1 1 100%}.composer{max-height:55vh;overflow:auto}#family{padding-bottom:380px}}
.upload-row .button[for="camera"],.upload-row #send{flex:none;white-space:nowrap;min-width:60px;font-size:20px}.upload-row .button[for="files"]{flex:1 1 auto;min-width:0;line-height:1.4}.mast>div{min-width:0}.mast #logout{font-size:18px}.modebar button{font-size:24px}
@media(max-width:600px){.upload-row{flex-wrap:nowrap}.upload-row label.button:first-child{flex:1 1 auto}.upload-row .button[for="files"]{font-size:18px}.composer{max-height:55vh}.modebar button{font-size:22px}}

/* v2.1: permanent text input, horizontal shortcuts and persistent speech preference. */
.soundbar{display:flex;justify-content:flex-end;margin-bottom:.5rem}.soundbar button{font-size:24px;border-color:var(--gold)}
.quick-ask{display:flex;gap:.35rem;overflow-x:auto;padding:.15rem .1rem .4rem;scrollbar-width:thin;max-width:100%}.quick-ask button{flex:0 0 auto;white-space:nowrap;font-size:24px;min-height:52px;color:var(--gold)}
.text-row{align-items:stretch}.text-row textarea{font-size:24px;min-height:96px}.text-row .gold{min-width:72px}
.attachment-options summary{font-size:20px;padding:.3rem 0}.attachment-options[open]{border-bottom:1px solid var(--line);margin-bottom:.25rem}.composer{max-height:70dvh;overflow-y:auto}.compose-inner{min-width:0}.api-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:.6rem 0}#apiKeyStatus{overflow-wrap:anywhere}#clientVaultList{max-height:60vh;overflow:auto}
@media(max-width:600px){.composer{max-height:65dvh;padding-top:.25rem}.composer #recordHelp{font-size:14px;margin:0}.composer .record{min-height:58px;padding:.4rem}.quick-ask button{font-size:24px}.attachment-options[open] .upload-row{flex-wrap:wrap}}
