:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#263730;background:#eef1ed;font-synthesis:none}*{box-sizing:border-box}body{margin:0;padding:36px 20px}.chat{max-width:900px;height:calc(100dvh - 72px);min-height:480px;margin:auto;background:#fafbf8;border:1px solid #dce2d9;border-radius:20px;box-shadow:0 20px 70px #2637300d;display:flex;flex-direction:column;overflow:hidden}header{display:flex;align-items:center;gap:14px;padding:23px 28px;border-bottom:1px solid #e1e6de;background:#fff}.mark{background:#334d42;color:#fff;font-family:Georgia,serif;font-size:26px;border-radius:12px;padding:10px 17px}h1{margin:0;font-size:20px;letter-spacing:.5px}header p{margin:6px 0 0;color:#788379;font-size:12px}#mode{margin-left:auto;color:#627568;background:#edf2e9;border-radius:20px;padding:7px 10px;font-size:10px;letter-spacing:1px;white-space:nowrap}#messages{flex:1;overflow:auto;padding:28px;scroll-behavior:smooth}.welcome{text-align:center;padding:28px 8px 36px;color:#88958a}.welcome span{font-size:10px;letter-spacing:3px}.welcome h2{font-size:23px;color:#4d6556;font-weight:500}.welcome p{font-size:13px}.message{display:flex;align-items:flex-start;gap:11px;margin:20px 0}.message>div:last-child{max-width:78%;min-width:0}.avatar{width:36px;height:36px;flex-shrink:0;background:#dbe6da;color:#4b6550;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600}.john .avatar{background:#dce4ef;color:#566b85}.name{font-size:11px;color:#7d897f;margin:0 0 7px 3px}.bubble{margin:0;padding:13px 17px;background:#fff;border:1px solid #e0e5dc;border-radius:3px 15px 15px;font-size:14px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.own{flex-direction:row-reverse}.own .name{text-align:right}.own .avatar{background:#334d42;color:#fff}.own .bubble{background:#e1ebdf;border-color:#d6e1d3;border-radius:15px 3px 15px 15px}#typing{min-height:25px;padding:0 28px;color:#7a887d;font-size:12px}#error{padding:10px 18px;margin:0 24px 10px;background:#fff1e8;color:#885940;border-radius:8px;font-size:13px}form{border-top:1px solid #e1e6de;padding:18px 24px;background:#fff;display:grid;grid-template-columns:1fr auto;gap:12px}textarea{resize:none;font:inherit;font-size:14px;line-height:1.6;border:1px solid #dce3d8;border-radius:10px;padding:12px;background:#fafbf8;color:inherit}textarea:focus{outline:2px solid #a9bfaa;outline-offset:1px}button{align-self:center;border:0;background:#334d42;color:white;padding:12px 20px;border-radius:9px;font-size:14px;cursor:pointer}button:disabled{opacity:.4;cursor:default}small{grid-column:1/-1;color:#919a91;font-size:10px}small span{float:right}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:600px){body{padding:0}.chat{height:100dvh;min-height:0;border:0;border-radius:0}header{padding:18px 15px}header p{font-size:10px}#messages{padding:18px 15px}.message>div:last-child{max-width:82%}form{padding:14px}small span{display:none}.welcome{padding-top:12px}}

.progress{display:flex;align-items:center;justify-content:space-between;min-height:36px}.progress #typing{min-height:0;flex:1}.progress #stop{margin:0 24px 8px 0;padding:6px 10px;background:#e9eee7;color:#526654;font-size:12px}button[hidden]{display:none}

.draft{opacity:.75;padding-left:47px}.draft .bubble{border-style:dashed}#latency{padding:0 28px 8px;font-size:10px;color:#88958a}#latency:empty{display:none}

.bubble + .bubble{margin-top:7px;border-radius:15px;max-width:100%;width:fit-content}.own .bubble + .bubble{margin-left:auto}

#settings{position:relative;flex-shrink:0}#settings[hidden]{display:none}#settings summary{list-style:none;cursor:pointer;color:#627568;background:#edf2e9;border-radius:20px;padding:7px 10px;font-size:11px;white-space:nowrap;user-select:none}#settings summary::-webkit-details-marker{display:none}#settings[open] summary{background:#dfe8da}#settings .panel{position:absolute;right:0;top:calc(100% + 8px);z-index:10;width:250px;background:#fff;border:1px solid #dce2d9;border-radius:12px;box-shadow:0 12px 36px #2637301f;padding:14px}#settings label{display:block;font-size:11px;color:#7d897f;margin-bottom:6px}#settings select{width:100%;font:inherit;font-size:13px;padding:8px;border:1px solid #dce3d8;border-radius:8px;background:#fafbf8;color:inherit}#settings select:disabled{opacity:.5}#settings .panel p{margin:9px 0 0;font-size:10px;line-height:1.6;color:#919a91}@media(max-width:600px){#settings .panel{width:220px}}

.switch-prompt{margin:16px 0 16px 47px;max-width:78%;padding:12px 14px;background:#fff8ef;border:1px solid #efdcc6;border-radius:12px;font-size:13px;color:#6f5640}.switch-prompt.slow{background:#f4f7f1;border-color:#dce5d6;color:#526654}.switch-prompt p{margin:0 0 10px;line-height:1.6}.switch-prompt .actions{display:flex;flex-wrap:wrap;gap:8px}.switch-prompt button{padding:7px 12px;font-size:12px;border-radius:8px}.switch-prompt button.secondary{background:#e9eee7;color:#526654}@media(max-width:600px){.switch-prompt{margin-left:0;max-width:100%}}

.account{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:#627568;white-space:nowrap}.account a{color:#334d42}button.link{background:none;color:#627568;padding:4px 6px;font-size:12px;text-decoration:underline}#settings{margin-left:0}
.auth-page{display:grid;place-items:center;min-height:100dvh;padding:20px}.auth{width:100%;max-width:380px;background:#fafbf8;border:1px solid #dce2d9;border-radius:20px;box-shadow:0 20px 70px #2637300d;padding:30px 26px;text-align:center}.auth .mark{display:inline-block}.auth h1{margin:14px 0 8px}.auth .notice{margin:0 0 18px;padding:9px 12px;background:#fff8ef;border:1px solid #efdcc6;border-radius:10px;color:#6f5640;font-size:13px}.tabs{display:flex;gap:6px;justify-content:center;margin-bottom:16px;flex-wrap:wrap}.tabs button{background:#e9eee7;color:#526654;padding:8px 12px;font-size:13px}.tabs button.active{background:#334d42;color:#fff}.pane{display:grid;gap:12px;text-align:left;border:0;padding:0;background:none;grid-template-columns:1fr}.pane label{display:grid;gap:5px;font-size:12px;color:#7d897f}.pane input,.inline input{font:inherit;font-size:14px;padding:10px;border:1px solid #dce3d8;border-radius:9px;background:#fff;color:inherit}.pane button{width:100%}.pane[hidden],[hidden]{display:none!important}.hint{margin:0;font-size:12px;color:#7d897f;line-height:1.6}.auth #error{margin:14px 0 0}
.admin-page{padding:20px}.admin{max-width:1100px;margin:auto;background:#fafbf8;border:1px solid #dce2d9;border-radius:20px;overflow:hidden}.admin section{padding:18px 24px;border-bottom:1px solid #e1e6de}.admin h2{font-size:15px;margin:0 0 12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;padding:8px;border-bottom:1px solid #e6eae3;white-space:nowrap}th{color:#7d897f;font-weight:500}button.small{padding:5px 10px;font-size:12px;margin-right:6px}button.secondary{background:#e9eee7;color:#526654}.inline{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;border:0;padding:0;background:none}.inline label{display:grid;gap:5px;font-size:12px;color:#7d897f}.new-invite{font-size:14px;background:#e1ebdf;padding:10px 12px;border-radius:9px;user-select:all}.transcript{max-height:70vh;overflow:auto;font-size:13px;line-height:1.7;background:#fff;border:1px solid #e1e6de;border-radius:10px;padding:12px}.transcript .turn-sep{color:#919a91;font-size:11px;margin:12px 0 4px}.transcript .line{white-space:pre-wrap;overflow-wrap:anywhere}.transcript .line.own b{color:#334d42}#usage{font-size:12px;color:#7d897f;margin-bottom:8px}.admin #error{margin:14px 24px}
@media(max-width:600px){.account{gap:6px;font-size:11px}.admin-page{padding:0}.admin{border-radius:0}}
.profile-open{width:100%;margin-top:12px;padding:9px;font-size:13px}.overlay{position:fixed;inset:0;z-index:50;background:#26373059;display:grid;place-items:center;padding:16px;overflow:auto}.profile-card{display:grid;grid-template-columns:1fr;gap:12px;width:100%;max-width:440px;max-height:calc(100dvh - 32px);overflow:auto;background:#fafbf8;border:1px solid #dce2d9;border-radius:16px;box-shadow:0 20px 70px #2637302e;padding:20px 22px}.profile-card h2{margin:0;font-size:18px}.profile-card label{display:grid;gap:5px;font-size:12px;color:#7d897f}.profile-card input:not([type=radio]),.profile-card select,.profile-card textarea{font:inherit;font-size:14px;padding:9px 10px;border:1px solid #dce3d8;border-radius:9px;background:#fff;color:#263730;resize:vertical}.profile-card fieldset{border:1px solid #e1e6de;border-radius:10px;padding:10px 12px;display:grid;gap:8px;margin:0}.profile-card legend{font-size:12px;color:#7d897f;padding:0 4px}.profile-card .choices{display:flex;flex-wrap:wrap;gap:14px}.profile-card .choices label{display:flex;align-items:center;gap:5px;font-size:14px;color:#263730}.profile-card .pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-card .note{font-size:11px;color:#919a91}.profile-card .buttons{display:flex;gap:10px;justify-content:flex-end}.profile-card .buttons button{padding:10px 18px}
.profile-view{background:#fff;border:1px solid #e1e6de;border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:13px}.profile-view h3{margin:0 0 6px;font-size:13px;color:#4d6556}.profile-view p{margin:0;color:#919a91}.profile-view dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}.profile-view dt{color:#7d897f}.profile-view dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.profile-card{grid-template-columns:minmax(0,1fr);overflow-x:hidden}.profile-card label,.profile-card fieldset{min-width:0}.profile-card input:not([type=radio]),.profile-card select,.profile-card textarea{width:100%;min-width:0}.profile-card .pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.version-tag{position:fixed;left:8px;top:5px;z-index:1;font-size:9px;line-height:1;letter-spacing:.5px;color:#9aa59c;opacity:.75;pointer-events:none;user-select:none}
#memory-list{display:grid;gap:10px}.memory-item{display:grid;gap:6px;border:1px solid #e1e6de;border-radius:10px;padding:10px 12px;background:#fff}.memory-item .kind{font-size:11px;color:#7d897f}.memory-item .row{display:flex;gap:8px;justify-content:flex-end}.memory-item .row button{padding:6px 12px;font-size:12px}.profile-view .summary{color:#4d6556;margin:0 0 8px;white-space:pre-wrap}
.api-note{margin-top:10px;color:#4d6556}.api-status{color:#4d6556;white-space:pre-wrap}.api-status.bad{color:#a24b3b}#api-form .buttons{flex-wrap:wrap}
