:root{--navy:#0f2747;--navy-2:#1b3e64;--gold:#c8a24d;--cream:#f7f5ef;--white:#fff;--soft:#eef1f4;--text:#14263a;--muted:#667586;--line:#dfe5eb;--shadow:0 6px 26px rgba(15,39,71,.055)}
*{box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;background:var(--cream);-webkit-text-size-adjust:100%}body{margin:0;color:var(--text);padding-bottom:env(safe-area-inset-bottom)}button,input,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid #b5a056;outline-offset:2px}.app-shell{max-width:550px;min-height:100vh;margin:0 auto;padding:0 17px 26px}header.topbar{display:flex;align-items:center;justify-content:space-between;padding:24px 1px 27px;gap:8px}.brand{display:flex;align-items:center;gap:11px}.brand-icon{background:var(--navy);color:var(--gold);border-radius:13px;display:grid;place-items:center;width:44px;height:44px;flex-shrink:0}.brand-icon svg{width:27px;height:27px}.brand-title{font-size:20px;line-height:1.15;font-weight:750;letter-spacing:-.55px}.brand-subtitle{font-size:12px;color:var(--muted);padding-top:5px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);background:var(--white);border-radius:12px;color:var(--navy);flex-shrink:0}.section-header{display:flex;justify-content:space-between;align-items:end;gap:5px;margin:0 0 13px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.45px;color:#8b7242}.section-header h1{font-size:24px;letter-spacing:-.8px;margin:4px 0 0;font-weight:780}.text-action{font-size:12px;color:var(--navy-2);background:transparent;border:0;padding:10px 1px;font-weight:700}.contacts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:20px}.contact-card{border:1px solid #e5e8ea;border-radius:15px;display:flex;align-items:center;gap:10px;background:var(--white);box-shadow:var(--shadow);min-width:0;padding:12px 11px;text-align:left;min-height:77px;transition:background .15s,box-shadow .15s,border-color .15s}.contact-card:active{transform:scale(.99)}.contact-card.active{border:1.5px solid var(--navy-2);background:#f0f5fa;box-shadow:0 0 0 1px rgba(27,62,100,.07)}.person-avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#e8eef4;color:var(--navy);font-size:16px;font-weight:780;flex-shrink:0}.contact-card.active .person-avatar{background:var(--navy);color:var(--white)}.person-text{min-width:0;flex:1}.person-name{font-size:14px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-style{font-size:11px;color:var(--muted);padding-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-add{border-style:dashed;box-shadow:none;background:transparent}.contact-add .person-avatar{background:#ece9de;color:#796135;font-size:24px;font-weight:400}.compose-panel,.result-panel{background:var(--white);border-radius:18px;padding:18px 16px;border:1px solid #e8ebee;box-shadow:var(--shadow);margin-bottom:13px}.panel-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.person-chip{max-width:64%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#edf1f5;color:var(--navy);font-size:11px;font-weight:750;padding:5px 9px;border-radius:999px}.compose-panel h2,.result-panel h2{font-size:19px;margin:8px 0 3px;letter-spacing:-.5px}.supporting{margin:4px 0;color:var(--muted);font-size:12px;line-height:1.55}.mic-area{display:flex;align-items:center;flex-direction:column;padding:15px 0 16px;gap:11px}.mic-button{width:78px;height:78px;border-radius:50%;border:0;background:var(--navy);color:var(--white);display:grid;place-items:center;box-shadow:0 0 0 9px #eef2f5,0 9px 19px rgba(15,39,71,.12);transition:transform .18s,background .18s}.mic-button:active{transform:scale(.96)}.mic-button.recording{background:#b94142;box-shadow:0 0 0 9px #fbe9e9,0 0 0 16px #fdf4f4;animation:pulse 1.8s infinite}@keyframes pulse{50%{box-shadow:0 0 0 11px #fbe9e9,0 0 0 20px #fdf4f4}}.voice-status{font-size:12px;color:var(--muted);text-align:center;min-height:16px;max-width:90%;line-height:1.4}.field-label{display:block;font-size:12px;font-weight:750;color:var(--navy);margin:5px 0 8px}textarea,input[type=text]{display:block;width:100%;border:1px solid var(--line);border-radius:11px;padding:12px 13px;color:var(--text);background:#fbfcfd;font-size:15px;line-height:1.55;resize:vertical;min-height:47px}textarea{min-height:104px}textarea::placeholder,input::placeholder{color:#93a0aa}#finalText{margin:11px 0 12px}.format-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin-top:12px}.button{border:0;border-radius:11px;font-size:13px;line-height:1.25;font-weight:750;min-height:45px;padding:12px 10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}.button-primary{background:var(--navy);color:white}.button-secondary{background:#eaf0f5;color:var(--navy)}.button-copy{background:var(--gold);color:#1c2836;padding:12px 15px;flex:1}.button-quiet{background:transparent;color:var(--muted);padding:10px}.sparkle{color:var(--gold);font-size:19px}.fineprint{margin:11px 0 0;font-size:11px;line-height:1.55;color:#7c8792}.result-header{display:flex;align-items:center;justify-content:space-between;gap:9px}.result-header h2{margin:6px 0 0}.editable-tag{background:#e8f1ec;color:#38644f;border-radius:20px;font-size:10px;padding:6px 9px;font-weight:750}.bottom-actions{display:flex;gap:8px;align-items:stretch;justify-content:space-between}.footer{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:var(--muted);padding:12px 2px 3px}.footer-link{border:0;background:transparent;color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:2px;font-size:11px}.overlay{position:fixed;inset:0;background:rgba(11,31,52,.5);display:flex;align-items:flex-end;justify-content:center;z-index:20;padding:12px}.hidden{display:none!important}.dialog{background:white;border-radius:21px 21px 16px 16px;width:min(100%,520px);max-height:min(88vh,850px);overflow:auto;padding:21px 18px 24px;box-shadow:0 28px 85px rgba(0,0,0,.2)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-head h2{font-size:20px;letter-spacing:-.45px;margin:0}.dialog .field-label{margin-top:15px}.dialog-actions{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.danger{color:#b23b3b}.help-copy{font-size:13px;line-height:1.65}.help-copy p{margin:13px 0}.full{width:100%;margin-top:9px}.toast{position:fixed;left:50%;bottom:calc(23px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#172c41;color:#fff;min-width:min(88vw,300px);max-width:90vw;padding:13px 17px;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.2);text-align:center;font-size:13px;z-index:40}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}
@media(max-width:355px){.app-shell{padding-inline:12px}.brand-title{font-size:18px}.contact-card{gap:7px;padding:10px 7px}.person-avatar{width:34px;height:34px}.person-name{font-size:13px}.contact-card .person-style{font-size:10px}.format-actions{grid-template-columns:1fr;}.compose-panel,.result-panel{padding:15px 13px}}
@media(min-width:550px){.app-shell{padding-left:28px;padding-right:28px}header.topbar{padding-top:34px}.dialog{border-radius:20px;margin:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

[hidden]{display:none!important}

.empty-state{background:#fff;border:1px dashed #ccd7df;border-radius:15px;padding:18px 15px;margin-bottom:11px;text-align:center}.empty-state p{margin:0 0 13px;font-size:13px;line-height:1.55;color:var(--muted)}.empty-state .button{width:100%}.contact-card .person-name,.contact-card .person-style{display:block}

.manual-link{display:block;margin:12px auto 0;padding:7px 4px;background:none;border:0;color:#1b3e64;font-weight:650;font-size:12px;text-decoration:underline;text-underline-offset:3px}.button[disabled]{opacity:.58;cursor:wait}.login-error{font-size:12px;color:#b23636;line-height:1.4;margin:8px 0}input[type=password]{display:block;width:100%;border:1px solid var(--line);border-radius:11px;padding:12px 13px;background:#fbfcfd;color:var(--text);font-size:16px;min-height:47px}
