:root{color-scheme:dark;--bg:#0d1712;--side:#111f18;--surface:#172a20;--surface2:#203a2a;--line:#2a4735;--ink:#edf5ed;--muted:#a6b8ab;--accent:#b5e0b1;--red:#f3aaa0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.shell{display:flex;height:100dvh;min-height:400px;overflow:hidden}.sidebar{width:252px;flex-shrink:0;background:var(--side);border-right:1px solid #213a2a;padding:31px 16px;display:flex;flex-direction:column}.brand{text-decoration:none;display:flex;align-items:center;gap:11px;padding:0 12px;color:var(--ink)}.brand-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;overflow:visible}.brand-icon img{display:block;width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 .2rem .3rem rgba(0,0,0,.25))}.brand-word{font-size:27px;font-weight:760;letter-spacing:-1.7px}.brand-dot{color:var(--accent)}.sidebar-label{font-size:10px;letter-spacing:2px;font-weight:750;color:#78917f;margin:57px 17px 15px}.side-nav{display:grid;gap:5px}.nav-item{width:100%;border:0;border-radius:12px;display:flex;align-items:center;gap:13px;padding:13px 15px;text-align:left;background:none;color:#a0b7a8;font-size:13px;font-weight:600}.nav-item:hover{background:#1c3124;color:var(--ink)}.nav-item.active{background:#294a33;color:#d7f5db}.nav-item svg{width:18px;height:18px}.sidebar-footer{margin-top:auto;padding:17px 15px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted);display:grid;grid-template-columns:8px 1fr;gap:9px 10px;align-items:center}.sidebar-footer small{font-size:10px;color:#78917f;grid-column:1/3}.status-dot{width:7px;height:7px;background:#b99a53;border-radius:100%}.status-dot.connected{background:#83d99e;box-shadow:0 0 0 4px #294934}
.workspace{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:70px;flex-shrink:0;border-bottom:1px solid #22372a;padding:0 clamp(17px,4vw,46px);display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar-title{font-size:13px;font-weight:750}.topbar-subtitle{font-weight:450;color:#829b88;margin-left:4px}.quiet-button,.subtle-button{border:1px solid var(--line);color:#d5e6d9;background:var(--surface);border-radius:10px;padding:9px 13px;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;white-space:nowrap}.quiet-button:hover,.subtle-button:hover{background:var(--surface2)}.quiet-button svg{width:16px;height:16px}
main{flex:1;min-height:0}.chat-view{height:100%;display:flex;flex-direction:column}.chat-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#42614a transparent}.welcome{max-width:600px;margin:auto;min-height:100%;padding:8vh 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.mira-icon{width:70px;height:70px;border-radius:25px;display:grid;place-items:center;background:radial-gradient(circle at 40% 20%,#3d7050,#1c3d2a);box-shadow:0 10px 50px #0b140e}.mira-icon span{font-style:italic;font-weight:850;color:#d0f4d4;font-size:48px;line-height:1;margin-top:-9px}.eyebrow{font-size:10px;font-weight:800;color:#8ebd95;letter-spacing:2.4px}.welcome .eyebrow{margin-top:27px;margin-bottom:13px}.welcome h1{font-size:clamp(28px,4vw,40px);font-weight:650;letter-spacing:-1.6px;line-height:1.15;margin:0}.welcome>p:last-child{font-size:14px;line-height:1.75;color:var(--muted);max-width:420px;margin-top:16px}.conversation{list-style:none;max-width:880px;padding:32px clamp(18px,4vw,48px);margin:0 auto;display:flex;flex-direction:column;gap:26px}.bubble{display:flex;flex-direction:column;gap:9px;max-width:85%;line-height:1.67}.bubble .speaker{font-size:11px;font-weight:750;letter-spacing:.4px;color:#9ac8a2}.bubble p{font-size:14px;line-height:1.72;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.bubble.user{align-self:flex-end;background:#244431;border:1px solid #31573f;padding:14px 18px;border-radius:19px 19px 5px 19px;max-width:min(80%,680px)}.bubble.user .speaker{display:none}.bubble.assistant{align-self:flex-start;max-width:800px}.bubble.assistant p{color:#e5eee5}.thinking{max-width:880px;margin:auto;padding:0 clamp(18px,4vw,48px) 24px;color:var(--muted);font-size:13px}.composer-wrap{flex-shrink:0;background:linear-gradient(0deg,var(--bg) 70%,rgba(13,23,18,.97));padding:12px clamp(18px,4vw,48px) 17px}.composer{max-width:880px;margin:0 auto;display:flex;align-items:flex-end;gap:10px;border-radius:21px;border:1px solid #3a5c44;background:#1a3022;padding:11px 12px 11px 19px;box-shadow:0 8px 26px #050b0766}.composer:focus-within{border-color:#6b9f74}.composer textarea{flex:1;min-height:27px;max-height:208px;resize:none;overflow-y:hidden;outline:0;border:0;background:transparent;color:var(--ink);padding:4px 0;line-height:1.55;font-size:14px;overflow-wrap:anywhere}.composer textarea:focus-visible{outline:none}.composer textarea::placeholder{color:#8ba491}.send-button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:11px;background:var(--accent);color:#183322;flex-shrink:0}.send-button:hover{background:#c2e9c0}.send-button svg{height:18px;width:18px;stroke-width:2.2}.composer-note{display:block;max-width:880px;margin:9px auto 0;text-align:center;font-size:10px;color:#678471}
.memory-view{height:100%;overflow:auto;padding:clamp(22px,3vw,44px) clamp(20px,4vw,48px)}.memory-header{max-width:750px}.memory-header .eyebrow{margin:0 0 15px}.memory-header h1{font-size:clamp(27px,3vw,36px);font-weight:650;letter-spacing:-1.4px;margin:0 0 13px}.memory-header>p:last-child{font-size:13px;color:var(--muted);line-height:1.7;margin:0;max-width:650px}.memory-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(270px,.85fr);gap:18px;align-items:start;margin-top:33px}.memory-panel{border:1px solid var(--line);background:var(--side);border-radius:18px;padding:22px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.memory-panel h2{font-size:14px;margin:0 0 17px;font-weight:700}.section-title h2{margin:0}.memory-list{display:grid;gap:12px;margin-top:18px}.memory-card{border:1px solid var(--line);border-radius:13px;padding:14px 15px;background:#192d21}.memory-card.inactive{opacity:.65}.memory-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted);font-size:10px}.memory-meta strong{color:#c7e4ca;font-size:11px;overflow-wrap:anywhere}.chip{padding:3px 7px;background:#2a4735;border-radius:30px}.memory-content{margin:13px 0;font-size:12px;line-height:1.62;white-space:pre-wrap;overflow-wrap:anywhere}.memory-actions{display:flex;flex-wrap:wrap;gap:7px}.memory-actions button{border:1px solid #36573f;background:#254030;color:#d0e5d2;border-radius:8px;padding:6px 9px;font-size:11px}.memory-actions .delete{color:var(--red);background:#412923;border-color:#6d4038}.empty{font-size:13px;color:var(--muted);line-height:1.6}.memory-form{display:grid;gap:10px}.memory-form label{color:#c8ddcd;font-size:11px;font-weight:650;margin-top:5px}.memory-form input,.memory-form textarea,.memory-form select{width:100%;background:#1b3024;color:var(--ink);border:1px solid #34513c;border-radius:10px;padding:11px 12px;font-size:12px;line-height:1.55}.memory-form textarea{resize:vertical;min-height:104px}.memory-form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.primary-button{background:var(--accent);color:#173322;border:0;border-radius:10px;font-weight:750;padding:11px 15px;font-size:12px}.primary-button:hover{background:#c4eec1}.toast{position:fixed;bottom:20px;right:20px;z-index:20;border:1px solid #45674d;background:#294734;color:#e1f5e4;padding:14px 18px;border-radius:12px;box-shadow:0 20px 40px #0008;font-size:12px;max-width:min(450px,calc(100vw - 32px))}.toast.error{border-color:#714841;background:#462e2a;color:#ffe2dd}
@media(max-width:900px){.sidebar{width:208px}.memory-layout{grid-template-columns:1fr}}
@media(max-width:650px){.shell{display:block}.sidebar{position:fixed;bottom:0;left:0;right:0;z-index:12;width:100%;height:62px;border:0;border-top:1px solid var(--line);padding:5px 14px;background:#102018}.brand,.sidebar-label,.sidebar-footer{display:none}.side-nav{display:flex;height:100%;justify-content:space-around;gap:10px}.nav-item{display:flex;flex-direction:column;gap:3px;justify-content:center;align-items:center;flex:1;font-size:10px;padding:3px 8px}.nav-item svg{width:19px;height:19px}.workspace{height:calc(100dvh - 62px)}.topbar{height:57px;padding:0 15px}.quiet-button{font-size:11px;padding:9px}.topbar-subtitle{display:none}.welcome{padding:4vh 18px}.welcome h1{font-size:29px}.welcome>p:last-child{font-size:13px}.composer-wrap{padding:8px 13px calc(10px + env(safe-area-inset-bottom,0px))}.composer{border-radius:18px}.composer-note{font-size:9px}.conversation{gap:21px;padding:20px 17px}.bubble{max-width:93%}.bubble.user{max-width:85%;padding:12px 14px}.bubble p{font-size:13px}.memory-view{padding:22px 15px}.memory-panel{padding:17px}}
@media(prefers-reduced-motion:no-preference){.bubble{animation:fade-up .18s ease-out}@keyframes fade-up{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}


/* Archer's Mira chat — same message hierarchy, feline identity, prompt
   tiles, input colors and compact spacing, adapted to Mira Web's independent
   layout. Only the chat is restyled; the memory workspace is untouched. */
.chat-view{background:#0b1510;color:#eaf3eb}
.chat-view .chat-scroll{scrollbar-color:#4c6a54 transparent}
.chat-view .welcome{
  display:grid;
  align-content:start;
  justify-items:stretch;
  gap:1.05rem;
  width:min(100%,58rem);
  min-height:0;
  max-width:58rem;
  margin:clamp(1.3rem,4vw,3rem) auto 1rem;
  padding:0 clamp(1rem,3.7vw,2.1rem);
  text-align:left;
}
.chat-view .welcome-bubble{max-width:43rem;padding:.15rem .25rem}
.chat-view .welcome-kicker{
  display:block;
  margin:0 0 .5rem;
  color:#92caa3;
  font-size:.63rem;
  font-weight:850;
  letter-spacing:.12em;
}
.chat-view .welcome h1{
  margin:0;
  color:#f2f8f2;
  font-size:clamp(1.45rem,3.5vw,2.35rem);
  line-height:1.13;
  font-weight:760;
  letter-spacing:-.045em;
}
.chat-view .welcome-bubble p{
  max-width:35rem;
  margin:.7rem 0 0;
  color:#c4d5c8;
  font-size:.89rem;
  line-height:1.65;
}
.chat-view .examples{padding:.1rem 0 0}
.chat-view .examples h2{
  margin:0 0 .65rem;
  color:#b9cabc;
  font-size:.68rem;
  font-weight:750;
  letter-spacing:.025em;
}
.chat-view .example-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.6rem;
}
.chat-view .example-prompt{
  display:flex;
  align-items:center;
  gap:.85rem;
  width:100%;
  min-height:5.2rem;
  padding:.75rem .9rem;
  border:1px solid rgba(165,210,173,.17);
  border-radius:.88rem;
  color:#eaf5ec;
  background:#1a2c21;
  text-align:left;
  box-shadow:none;
  transition:border-color .17s,background .17s,transform .17s;
}
.chat-view .example-prompt:hover:not(:disabled){
  transform:translateY(-2px);
  border-color:rgba(156,218,171,.48);
  background:#233a2b;
}
.chat-view .example-icon{
  display:grid;
  flex:0 0 auto;
  width:2.5rem;
  height:2.5rem;
  place-items:center;
  border-radius:.7rem;
  color:#c4e6ca;
  background:#2b4534;
}
.chat-view .example-icon svg{width:1.35rem;height:1.35rem}
.chat-view .example-text{display:grid;min-width:0;gap:.25rem}
.chat-view .example-text strong{color:#f0f7f0;font-size:.84rem;font-weight:800;line-height:1.3}
.chat-view .example-text small{color:#bacfbe;font-size:.69rem;font-weight:550;line-height:1.35}
.chat-view .example-arrow{margin-left:auto;color:#b6d1ba;font-size:1rem}

.chat-view .conversation{
  display:grid;
  align-content:start;
  width:min(100%,62rem);
  max-width:62rem;
  margin:.3rem auto .65rem;
  padding:1.25rem clamp(1rem,3.7vw,2.1rem) 2rem;
  gap:1.15rem;
}
.chat-view .bubble{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  max-width:100%;
  gap:.85rem;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  line-height:normal;
}
.chat-view .bubble.user{
  justify-self:end;
  display:block;
  max-width:min(78%,38rem);
  padding:.8rem 1.05rem;
  border:1px solid #507a5c;
  border-radius:1rem 1rem .28rem 1rem;
  color:#fff;
  background:linear-gradient(135deg,#2c6341,#244d35);
}
.chat-view .bubble.assistant{justify-self:start;width:100%;max-width:58rem;color:#eaf4eb}
.chat-view .message-body{min-width:0;max-width:100%;overflow-wrap:anywhere}
.chat-view .bubble .speaker,
.chat-view .thinking .speaker{
  display:block;
  margin:0 0 .22rem;
  color:#a9d9b3;
  font-size:.72rem;
  font-weight:800;
  line-height:1.3;
  letter-spacing:.02em;
}
.chat-view .bubble.user .speaker{display:block;color:#d2e9d6}
.chat-view .bubble p{
  margin:.22rem 0 0;
  color:inherit;
  font-size:.89rem;
  line-height:1.7;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.chat-view .bubble.assistant p{color:#eaf4eb}
.chat-view .message-avatar{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:2.45rem;
  height:2.45rem;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
}
.chat-view .message-avatar img{
  display:block;
  width:2.35rem;
  height:2.35rem;
  object-fit:contain;
  filter:drop-shadow(0 .2rem .23rem rgba(0,0,0,.28));
}

.chat-view .thinking{
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  width:min(100%,62rem);
  max-width:62rem;
  margin:0 auto;
  padding:0 clamp(1rem,3.7vw,2.1rem) 1rem;
  color:#eaf4eb;
}
.chat-view .pending-paws{
  position:relative;
  display:block;
  width:3.75rem;
  height:1.45rem;
  margin:.14rem 0 .04rem;
}
.chat-view .pending-paw{
  position:absolute;
  display:block;
  width:1rem;
  height:1rem;
  color:#a0ffb6;
  opacity:0;
  filter:drop-shadow(0 0 .16rem rgba(112,250,147,.38));
  animation:mira-web-paw-walk 2.55s linear infinite;
}
.chat-view .pending-paw svg{display:block;width:100%;height:100%}
.chat-view .pending-paw:nth-child(1){left:.03rem;top:.36rem;--paw-rotate:82deg;animation-delay:0s}
.chat-view .pending-paw:nth-child(2){left:1.35rem;top:.07rem;--paw-rotate:98deg;animation-delay:.85s}
.chat-view .pending-paw:nth-child(3){left:2.68rem;top:.36rem;--paw-rotate:82deg;animation-delay:1.7s}
@keyframes mira-web-paw-walk {
  0%{opacity:0;transform:rotate(var(--paw-rotate)) scale(.88)}
  7%{opacity:1;transform:rotate(var(--paw-rotate)) scale(1)}
  24%{opacity:1;transform:rotate(var(--paw-rotate)) scale(1)}
  30%,100%{opacity:0;transform:rotate(var(--paw-rotate)) scale(1.03)}
}

/* Same focused green composer as Archer; auto-height remains functional. */
.chat-view .composer-wrap{
  position:relative;
  flex-shrink:0;
  padding:1.1rem clamp(1rem,3.7vw,2.1rem) max(.75rem,env(safe-area-inset-bottom,0px));
  background:linear-gradient(180deg,rgba(11,21,16,0),#0b1510 27%);
}
.chat-view .composer{
  max-width:56rem;
  min-height:3.25rem;
  margin:0 auto;
  padding:.35rem;
  gap:.35rem;
  border:1px solid #486550;
  border-radius:1rem;
  background:#1b3023;
  box-shadow:0 .4rem 1.45rem rgba(2,14,7,.28);
}
.chat-view .composer:focus-within{
  border-color:#a0d5ad;
  box-shadow:0 0 0 .16rem rgba(118,175,129,.12),0 .4rem 1.45rem rgba(2,14,7,.28);
}
.chat-view .composer textarea{
  min-width:0;
  min-height:2.45rem;
  max-height:min(35dvh,240px);
  padding:.52rem .7rem;
  color:#eef6f0;
  font-size:.89rem;
  line-height:1.45;
  resize:none;
}
.chat-view .composer textarea::placeholder{color:#b1c3b4;opacity:1}
.chat-view .send-button{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:2.55rem;
  height:2.55rem;
  border:0;
  border-radius:.75rem;
  color:#102719;
  background:#6cab7c;
}
.chat-view .send-button:hover:not(:disabled){background:#8ac79a}
.chat-view .send-button svg{width:1.25rem;height:1.25rem}
.chat-view .composer-note{color:#839d88}

@media(max-width:42rem){
  .chat-view .welcome{gap:.75rem;margin:.85rem auto .4rem;padding:0 .85rem}
  .chat-view .welcome h1{font-size:1.6rem}
  .chat-view .welcome-bubble p{margin:.45rem 0 0;font-size:.77rem;line-height:1.55}
  .chat-view .example-grid{gap:.48rem}
  .chat-view .example-prompt{
    min-height:5.05rem;
    padding:.64rem;
    gap:.48rem;
    flex-direction:column;
    align-items:flex-start;
  }
  .chat-view .example-icon{width:2rem;height:2rem;border-radius:.55rem}
  .chat-view .example-icon svg{width:1.1rem;height:1.1rem}
  .chat-view .example-text strong{font-size:.73rem}
  .chat-view .example-text small{font-size:.62rem}
  .chat-view .example-arrow{display:none}
  .chat-view .conversation{
    gap:.85rem;
    margin:.2rem auto .4rem;
    padding:1rem .85rem 1.5rem;
  }
  .chat-view .bubble.user{max-width:88%;padding:.62rem .77rem}
  .chat-view .bubble.assistant{max-width:100%;gap:.55rem}
  .chat-view .bubble .speaker{font-size:.72rem}
  .chat-view .bubble p{font-size:.81rem;line-height:1.62}
  .chat-view .message-avatar{width:2.1rem;height:2.1rem}
  .chat-view .message-avatar img{width:2.1rem;height:2.1rem}
  .chat-view .thinking{gap:.55rem;padding:0 .85rem 1rem}
  .chat-view .composer-wrap{padding:.9rem .8rem max(.65rem,env(safe-area-inset-bottom,0px))}
  .chat-view .composer{padding:.27rem;border-radius:.94rem}
  .chat-view .composer textarea{font-size:.86rem}
}
@media(max-width:22rem){
  .chat-view .example-grid{grid-template-columns:1fr}
  .chat-view .example-prompt{min-height:3.65rem;flex-direction:row;align-items:center}
  .chat-view .example-text small{display:none}
}
@media(prefers-reduced-motion:reduce){
  .chat-view .example-prompt{transition:none}
  .chat-view .pending-paw{animation:none;opacity:0}
  .chat-view .pending-paw:first-child{opacity:1;transform:rotate(82deg)}
}


/* Owner profile: binds a confirmed display name to the single account
   authenticated through Cloudflare Access. Never changes global biography. */
.memory-view .owner-profile-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:1.25rem;align-items:center;margin-top:2rem}
.owner-profile-panel h2{margin:0 0 .5rem;font-size:1rem}
.owner-profile-panel p{margin:0;color:var(--muted);font-size:.79rem;line-height:1.65}
.owner-profile-form{display:grid;gap:.55rem}
.owner-profile-form label{color:#c8ddcd;font-size:.73rem;font-weight:700}
.owner-profile-controls{display:flex;gap:.6rem;align-items:stretch}
.owner-profile-controls input{flex:1;min-width:0;padding:.7rem .85rem;border:1px solid #34513c;border-radius:.65rem;background:#1b3024;color:var(--ink);font-size:.85rem}
.owner-profile-controls .primary-button{white-space:nowrap}
.owner-profile-form small{color:var(--muted);font-size:.7rem;line-height:1.5}
.memory-view .owner-profile-panel + .memory-layout{margin-top:1.1rem}

/* Chat copy needs to read as a conversation rather than a record of
   named speaker turns. Keep the cat icon, but hide repetitive speaker tags. */
.chat-view .bubble .message-body{max-width:100%}
.chat-view .bubble.user .speaker{display:none}
.chat-view .bubble.assistant .speaker{font-size:.72rem;margin-bottom:.05rem}
.chat-view .bubble p{margin:.06rem 0 0}
.chat-view .conversation{gap:1.6rem}

@media(max-width:54rem){
 .memory-view .owner-profile-panel{grid-template-columns:1fr}
 .owner-profile-controls{flex-wrap:wrap}
 .owner-profile-controls .primary-button{flex:0 0 auto}
}
@media(max-width:42rem){
 .chat-view .conversation{gap:1.2rem}
 .chat-view .bubble.assistant .speaker{font-size:.68rem}
 .chat-view .bubble p{line-height:1.55}
 .owner-profile-controls{display:grid;grid-template-columns:1fr}
 .owner-profile-controls .primary-button{justify-self:start}
}

.topbar-actions{display:flex;align-items:center;gap:8px}
.sidebar-footer #account-name{grid-column:1/3;color:var(--accent);overflow-wrap:anywhere}
.login-screen{display:flex;justify-content:center;align-items:center;min-height:100dvh;padding:24px;background:var(--bg)}
.login-card{width:min(100%,420px);border:1px solid var(--line);background:var(--side);border-radius:22px;padding:38px}
.login-card>img{display:block;margin:0 auto 12px;object-fit:contain}
.login-card h1{text-align:center;font-size:28px;margin:12px 0}
.login-card p{text-align:center;color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 27px}
.login-card form{display:grid;gap:10px}.login-card label{font-size:12px;color:var(--muted)}
.login-card input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:13px}
.login-card button{margin-top:14px;padding:13px}.login-card small{color:var(--red);min-height:17px}

/* Audit of sources actually supplied to Mira, shown only on demand. */
.chat-view .answer-evidence{margin:.7rem 0 .1rem;color:#aac4b0;max-width:48rem}
.chat-view .answer-evidence summary{
  display:list-item;width:max-content;max-width:100%;cursor:pointer;
  font-size:.76rem;line-height:1.5;padding:.18rem .35rem;border-radius:.35rem;
}
.chat-view .answer-evidence summary:hover,
.chat-view .answer-evidence summary:focus-visible{color:#d6f0db;background:#26382c}
.chat-view .answer-evidence .evidence-list{
  margin:.45rem 0 0;padding:.65rem .8rem .65rem 1.75rem;
  border:1px solid #38513f;border-radius:.65rem;background:#17271d;
  font-size:.76rem;line-height:1.65;overflow-wrap:anywhere
}
.chat-view .answer-evidence .evidence-list li{margin:.18rem 0}
.chat-view .answer-evidence .evidence-note{color:#8fa795;font-style:italic}


/* Mira Productivity — touch-friendly personal operating data, not AI memories. */
.productivity-view{height:100%;overflow-y:auto;overscroll-behavior:contain;
  padding:clamp(18px,3vw,40px) clamp(16px,4vw,44px) 3rem}
.productivity-header{display:flex;align-items:flex-start;justify-content:space-between;
  gap:1rem;max-width:75rem;margin:0 auto 1.4rem}
.productivity-header .eyebrow{margin:0 0 .55rem}
.productivity-header h1{font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.2;
  letter-spacing:-.06rem;margin:0 0 .5rem}
.productivity-header p:last-child{color:var(--muted);font-size:.83rem;line-height:1.55;
  max-width:42rem;margin:0}
.productivity-layout{max-width:75rem;margin:0 auto;display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);align-items:start;gap:1.1rem}
.productivity-panel{min-width:0;padding:1.1rem;border:1px solid var(--line);
  background:var(--side);border-radius:1rem}
.productivity-panel h2{margin:0 0 1.1rem;font-size:1rem}
.productivity-list{display:grid;gap:.7rem}
.productivity-list>.empty{color:var(--muted);line-height:1.5;margin:.5rem 0}
.personal-card{display:grid;gap:.7rem;padding:1rem;border-radius:.8rem;
  border:1px solid #304b38;background:#1b2e22}
.personal-title-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;min-width:0}
.personal-title-row>strong{font-size:.87rem;overflow-wrap:anywhere;min-width:0}
.personal-card.done .personal-item-title{text-decoration:line-through;color:var(--muted)}
.personal-card .chip{font-size:.66rem;padding:.18rem .45rem;border-radius:999px;
  background:#284733;color:#cbdfcf;overflow-wrap:anywhere}
.personal-detail{color:#c9d9cd;font-size:.79rem;line-height:1.6;
  white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.personal-meta{display:flex;flex-wrap:wrap;gap:.4rem .5rem}
.personal-meta .personal-detail{flex-basis:100%}
.personal-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.personal-check{width:1.35rem;height:1.35rem;flex:0 0 auto;
  accent-color:#9bd4a5;cursor:pointer}
.small-action{border:1px solid #42634b;border-radius:.55rem;background:#203d2b;
  color:#e3f0e4;font-size:.72rem;font-weight:650;padding:.55rem .8rem;
  min-height:2.5rem}
.small-action:hover{background:#2b5237}
.small-action.danger{background:transparent;color:#f5beb6;border-color:#694641}
.small-action.danger:hover{background:#402321}
.productivity-form{display:grid;gap:.55rem}
.productivity-form label{font-size:.74rem;font-weight:650;color:#d1e4d4}
.productivity-form input:not([type=checkbox]),.productivity-form textarea,
.productivity-form select{width:100%;min-width:0;background:#182a1f;color:var(--ink);
  border:1px solid #3a5842;border-radius:.65rem;padding:.75rem .8rem;
  font-size:.83rem;line-height:1.45}
.productivity-form textarea{resize:vertical;min-height:5rem}
.productivity-fields{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.productivity-fields>div{display:grid;gap:.55rem;min-width:0}
.productivity-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.35rem}
.productivity-actions button{min-height:2.65rem;padding:.7rem 1rem}
.productivity-editor{position:sticky;top:.8rem}
@media(max-width:900px){
  .productivity-layout{grid-template-columns:1fr}
  .productivity-editor{position:static}
}
@media(max-width:650px){
  .sidebar{padding:4px 5px;min-height:65px;height:65px}
  .side-nav{gap:1px}
  .nav-item{min-width:0;padding:3px 1px;font-size:10px;border-radius:9px;
    gap:3px;white-space:nowrap}
  .nav-item svg{width:19px;height:19px}
  .workspace{height:calc(100dvh - 65px)}
  .productivity-view{padding:1.25rem .75rem 2rem}
  .productivity-header{gap:.5rem;align-items:center}
  .productivity-header .subtle-button{padding:.55rem .65rem}
  .productivity-header h1{font-size:1.6rem}
  .productivity-header p:last-child{font-size:.75rem}
  .productivity-layout{gap:.7rem}
  .productivity-panel{padding:.85rem}
  .personal-card{padding:.8rem}
  .small-action{min-height:2.75rem}
  .productivity-fields{grid-template-columns:1fr 1fr}
}
@media(max-width:360px){
  .nav-item{font-size:9px}
  .nav-item svg{width:17px;height:17px}
  .productivity-fields{grid-template-columns:1fr}
}

/* V15 reminders: additional mobile-friendly view, no notification claims. */
.personal-reminder-detail{font-size:.79rem;line-height:1.5;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:.4rem 0}
.reminder-disclaimer{font-size:.75rem;color:var(--muted);line-height:1.5;margin:.2rem 0 .5rem}
@media(max-width:650px){
  .side-nav{gap:2px}
  .nav-item{min-width:0;padding:3px 2px;font-size:9px}
  .nav-item svg{width:18px;height:18px}
}

.push-controls{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:0 auto 1rem;max-width:75rem}
.push-controls p{font-size:.75rem;color:var(--muted);margin:0;line-height:1.5}
@media(max-width:650px){.push-controls{align-items:stretch;flex-direction:column}.push-controls button{min-height:44px}}

/* Installable Mira PWA and notification deep-link dialog. */
.topbar-actions{display:flex;align-items:center;gap:.55rem;min-width:0}
.reminder-dialog{background:#15251b;color:#edf5ed;border:1px solid #477357;
 border-radius:20px;width:min(92vw,480px);max-height:min(85dvh,700px);
 padding:0;box-shadow:0 20px 85px #000b;overflow:auto}
.reminder-dialog::backdrop{background:rgba(2,11,7,.75);backdrop-filter:blur(5px)}
.reminder-dialog-content{padding:clamp(1.1rem,4vw,1.65rem);display:grid;gap:1rem}
.reminder-dialog-brand{display:flex;align-items:center;gap:.75rem}
.reminder-dialog-avatar{height:54px;width:54px;border-radius:15px;object-fit:cover;
 border:1px solid #416448;background:#1e3926}
.reminder-dialog-brand .eyebrow{margin:0 0 .2rem;font-size:.63rem}
.reminder-dialog-brand-name{font-size:.77rem;color:#cee4d2;margin:0}
.reminder-dialog-x{margin-left:auto;padding:.45rem .7rem;min-width:38px;min-height:38px}
.reminder-dialog h2{font-size:clamp(1.3rem,5vw,1.85rem);line-height:1.25;
 letter-spacing:-.4px;margin:.35rem 0 0;overflow-wrap:anywhere}
.reminder-dialog-time{color:#b4d6b9;font-weight:600;font-size:.89rem;margin:0}
.reminder-dialog-details{color:#d5e6d8;white-space:pre-wrap;overflow-wrap:anywhere;
 font-size:.87rem;line-height:1.6;margin:0;padding:1rem;background:#1e3525;border-radius:12px}
.reminder-dialog-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:.4rem}
.reminder-dialog-actions button{min-height:46px;padding:.7rem .95rem}
.reminder-dialog-actions .primary-button{flex:1}
@media(max-width:650px){
 .topbar{padding-inline:12px}
 .topbar-subtitle{display:none}
 .topbar-actions{gap:.3rem}
 .topbar-actions .quiet-button{padding:.55rem .6rem;font-size:11px}
 #new-chat{font-size:0}
 #new-chat svg{width:19px;height:19px}
 .reminder-dialog-actions{flex-direction:column}
 .reminder-dialog-actions button{width:100%}
}
