/* Мира: pearl / ink themes with a lilac accent. Loaded after styles.css and
   project_process.css; overrides colours and layout only, never ids or flows. */
:root{
  --m-bg:#fbfafc;--m-side:#f3f1f7;--m-panel:#ffffff;--m-hover:#ebe6f3;--m-line:#e3dde9;--m-line-strong:#cfc6db;
  --m-ink:#272130;--m-muted:#655b72;--m-soft:#efe8f8;--m-user:#eee8f6;--m-solid:#55416f;--m-on-solid:#ffffff;
  --m-accent:#9a81c6;--m-accent-ink:#5d4485;--m-focus:#6f4c93;--m-shadow:#49355712;--m-code:#f3eff8;
  --m-warn-bg:#fbf1dc;--m-warn-line:#e3c98d;--m-warn-ink:#5e4313;
  --m-danger-bg:#fbe8e6;--m-danger-line:#e9b4ad;--m-danger-ink:#8a2f28;
  --m-ok-bg:#e6f2ea;--m-ok-ink:#215a36;--m-info-bg:#e9eef8;--m-info-ink:#2f4770;
  --m-orb-hi:#f7efff;--m-orb-lo:#b5a0cf;--m-speed:180ms;
  /* Old tokens used by styles.css and project_process.css */
  --bg:var(--m-bg);--panel:var(--m-panel);--ink:var(--m-ink);--muted:var(--m-muted);--line:var(--m-line);
  --accent:var(--m-soft);--nav:var(--m-solid);--navmuted:var(--m-muted);--border:var(--m-line);
  color-scheme:light;color:var(--m-ink);background:var(--m-bg);font-family:"Segoe UI",system-ui,Arial,sans-serif;
}
:root[data-theme=dark]{
  --m-bg:#24202c;--m-side:#1d1a24;--m-panel:#2d2835;--m-hover:#382f44;--m-line:#40384b;--m-line-strong:#51475f;
  --m-ink:#eee9f5;--m-muted:#b6abc4;--m-soft:#372c45;--m-user:#352b42;--m-solid:#d5c4ef;--m-on-solid:#241a32;
  --m-accent:#a88fd3;--m-accent-ink:#d3c0f2;--m-focus:#c9b2f0;--m-shadow:#00000030;--m-code:#2f2938;
  --m-warn-bg:#3d331f;--m-warn-line:#6e5a2c;--m-warn-ink:#f1dcab;
  --m-danger-bg:#422628;--m-danger-line:#7a3e3c;--m-danger-ink:#f6c4bd;
  --m-ok-bg:#223a2c;--m-ok-ink:#bfe6cb;--m-info-bg:#26304a;--m-info-ink:#c7d6f5;
  --m-orb-hi:#ece0ff;--m-orb-lo:#6e538e;color-scheme:dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme]){
  --m-bg:#24202c;--m-side:#1d1a24;--m-panel:#2d2835;--m-hover:#382f44;--m-line:#40384b;--m-line-strong:#51475f;
  --m-ink:#eee9f5;--m-muted:#b6abc4;--m-soft:#372c45;--m-user:#352b42;--m-solid:#d5c4ef;--m-on-solid:#241a32;
  --m-accent:#a88fd3;--m-accent-ink:#d3c0f2;--m-focus:#c9b2f0;--m-shadow:#00000030;--m-code:#2f2938;
  --m-warn-bg:#3d331f;--m-warn-line:#6e5a2c;--m-warn-ink:#f1dcab;--m-danger-bg:#422628;--m-danger-line:#7a3e3c;--m-danger-ink:#f6c4bd;
  --m-ok-bg:#223a2c;--m-ok-ink:#bfe6cb;--m-info-bg:#26304a;--m-info-ink:#c7d6f5;--m-orb-hi:#ece0ff;--m-orb-lo:#6e538e;color-scheme:dark}}

/* ---- base ---- */
body{background:var(--m-bg);color:var(--m-ink);font-size:14.5px;line-height:1.6}
a{color:var(--m-accent-ink)}
button{background:var(--m-solid);color:var(--m-on-solid);border-radius:9px;font-weight:550;transition:background var(--m-speed),color var(--m-speed),border-color var(--m-speed),box-shadow var(--m-speed),transform 120ms}
button:hover{filter:none;background:color-mix(in srgb,var(--m-solid) 88%,var(--m-bg))}
button:not(:disabled):active{transform:translateY(1px)}
button.secondary,.sidebar button.secondary{background:var(--m-panel);border-color:var(--m-line);color:var(--m-ink)}
button.secondary:hover{background:var(--m-hover)}
button.danger{background:var(--m-danger-bg);color:var(--m-danger-ink);border-color:var(--m-danger-line)}
button.danger:hover{background:color-mix(in srgb,var(--m-danger-bg) 80%,var(--m-danger-line))}
input,textarea,select{background:var(--m-panel);color:var(--m-ink);border-color:var(--m-line)}
/* Native popup palettes may differ from the closed transparent select. */
select option,select optgroup{background-color:var(--m-panel);color:var(--m-ink)}
select option:disabled,select optgroup:disabled{color:var(--m-muted)}
input::placeholder,textarea::placeholder{color:var(--m-muted);opacity:1}
:where(button,a,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--m-focus);outline-offset:2px}
.composer textarea:focus-visible,.ptc-composer textarea:focus-visible{outline:none}
summary{color:var(--m-muted)}
.sub{color:var(--m-muted)}
.eyebrow{color:var(--m-muted)}
.badge{background:var(--m-soft);color:var(--m-ink)}
.badge-warn,#access-badge{background:var(--m-warn-bg);color:var(--m-warn-ink)}
.badge-muted{background:transparent;border:1px solid var(--m-line);color:var(--m-muted)}
.hidden{display:none!important}
.mira-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- orb (CSS only) ---- */
.mira-orb{position:relative;display:inline-block;flex:none;width:30px;height:30px}
.mira-orb::before{content:'';position:absolute;inset:4px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--m-orb-hi),var(--m-accent) 56%,var(--m-orb-lo));box-shadow:0 0 18px color-mix(in srgb,var(--m-accent) 22%,transparent)}
.mira-orb::after{content:'';position:absolute;inset:0;border:1px solid color-mix(in srgb,var(--m-accent) 45%,transparent);border-radius:50%;transform:rotate(-27deg) scale(1.15,.54)}

/* ---- layout and sidebar ---- */
.layout{background:var(--m-bg)}
.sidebar{width:232px;background:var(--m-side);color:var(--m-ink);border-right:1px solid var(--m-line);padding:22px 14px 16px;display:flex;flex-direction:column;gap:0}
.sidebar .eyebrow,.sidebar .sub,.sidebar summary{color:var(--m-muted)}
.sidebar-header{padding:0 6px}
.mira-brand{display:flex;align-items:center;gap:11px;margin:0 0 12px}
.mira-brand .mira-orb{width:34px;height:34px}
.sidebar-header h1{font-size:27px;font-weight:500;letter-spacing:-1.2px;line-height:1.1;margin:0;color:var(--m-ink)}
.mira-caption{font-size:11px;color:var(--m-muted);margin-top:3px;letter-spacing:.1px}
.sidebar-header .badge{margin:2px 0;font-size:10.5px}
.account-name{color:var(--m-ink)}
.panel{margin-top:22px}
.panel h2,.sidebar .panel h2{font-size:10.5px;font-weight:600;letter-spacing:1px;color:var(--m-muted);padding:0 8px;margin-bottom:8px}
.list-item{color:var(--m-ink);border-radius:9px;font-weight:450;padding:9px 10px;font-size:13.5px}
.list-item:hover{background:var(--m-hover)}
.list-item.active{background:var(--m-soft);color:var(--m-ink)}
.list-item .sub{color:var(--m-muted);opacity:1}
.project-item{padding-left:26px}
.project-item::before{left:10px;color:var(--m-muted);opacity:1}
.project-item.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--m-accent) 38%,transparent)}
.project-nav{border-left:1px solid var(--m-line);margin:3px 0 8px 14px;padding-left:8px}
.project-nav .list-item.active .sub{color:var(--m-muted)}
.chat-item{position:relative}
.chat-item.active::before,.nav-action.active::before{content:'';position:absolute;left:0;top:50%;width:2px;height:14px;margin-top:-7px;border-radius:2px;background:var(--m-focus)}
.nav-action{position:relative;color:var(--m-muted);border-radius:8px;font-size:13px}
.nav-action:hover{background:var(--m-hover);color:var(--m-ink)}
.nav-action.active,.nav-action[aria-current=page]{background:var(--m-soft);color:var(--m-ink)}
.sidebar .development{border-top:1px solid var(--m-line);padding-top:18px}
.sidebar input,.sidebar textarea{background:var(--m-panel)}
#add-project summary{padding:6px 8px;border-radius:8px}#add-project summary:hover{background:var(--m-hover);color:var(--m-ink)}
.status-panel{color:var(--m-muted)}
.mira-side-footer{margin-top:auto;padding:16px 4px 0;border-top:1px solid var(--m-line)}
.sidebar .mira-side-footer{margin-top:auto}
.sidebar>.panel:last-of-type{margin-bottom:18px}
.mira-theme{display:flex;gap:3px;background:var(--m-bg);padding:3px;border-radius:10px;border:1px solid var(--m-line)}
.mira-theme button{flex:1;background:transparent;color:var(--m-muted);border:0;border-radius:7px;padding:6px 4px;font-size:11px;font-weight:500;white-space:nowrap}
.mira-theme button:hover{background:var(--m-hover);color:var(--m-ink)}
.mira-theme button[aria-pressed=true]{background:var(--m-panel);color:var(--m-ink);box-shadow:0 1px 4px var(--m-shadow)}

/* ---- main ---- */
.main{position:relative;max-width:none;padding:22px 34px 18px;background:radial-gradient(ellipse at 70% -12%,color-mix(in srgb,var(--m-accent) 8%,transparent),transparent 50%),var(--m-bg)}
.main-header{border-bottom:1px solid var(--m-line);padding-bottom:14px;margin-bottom:10px}
.chat-title{font-size:18px;font-weight:550;letter-spacing:-.3px;color:var(--m-ink);min-width:0;overflow-wrap:anywhere}
.chat-title .crumb{color:var(--m-muted)}.chat-title .crumb.current,.chat-title .crumb:hover{color:var(--m-ink)}
.mira-head-actions{display:flex;align-items:center;gap:8px;flex:none}
.mira-head-button{display:inline-flex;align-items:center;gap:7px;background:var(--m-panel);color:var(--m-ink);border:1px solid var(--m-line);border-radius:9px;padding:7px 11px;font-size:12.5px;font-weight:500}
.mira-head-button:hover{background:var(--m-hover)}
.mira-head-button[aria-expanded=true]{background:var(--m-soft);border-color:color-mix(in srgb,var(--m-accent) 45%,var(--m-line))}
.mira-head-button:disabled{opacity:.45}
.mira-context-icon{width:12px;height:12px;border:1.5px solid currentColor;border-radius:3px;position:relative;flex:none}
.mira-context-icon::after{content:'';position:absolute;top:1px;bottom:1px;right:3px;width:1.5px;background:currentColor}
.mira-menu-button{display:none}
.mira-menu-icon{width:14px;height:10px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;position:relative;flex:none}
.mira-menu-icon::after{content:'';position:absolute;left:0;right:0;top:50%;margin-top:-.75px;height:1.5px;background:currentColor}
.banner{background:var(--m-warn-bg);color:var(--m-warn-ink);border:1px solid var(--m-warn-line);border-radius:10px}

/* Context panel: closed by default; a right column on wide screens. */
body:not(.mira-context-open) #memory-panel{display:none}
#memory-panel{color:var(--m-ink);font-size:12.5px;background:var(--m-panel);border:1px solid var(--m-line);border-radius:12px;padding:14px 16px;margin:0 0 10px;max-height:38vh;overflow:auto;box-shadow:0 3px 14px var(--m-shadow);animation:mira-pane 200ms ease-out}
.mira-context-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:600;margin-bottom:8px}
.mira-context-head button{padding:3px 8px;font-size:11px}
.mira-context-label{font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--m-muted);margin:12px 0 4px;font-weight:600}
.mira-context-path{font-family:Consolas,"Cascadia Mono",monospace;font-size:11.5px;overflow-wrap:anywhere;color:var(--m-ink);padding:5px 0;border-bottom:1px solid var(--m-line)}
.mira-context-path:last-child{border-bottom:0}
.mira-context-empty{color:var(--m-muted);font-size:12px}
@media(min-width:1180px){
  body.mira-context-open .main:has(#memory-panel:not(.hidden)){padding-right:326px}
  body.mira-context-open #memory-panel{position:absolute;right:20px;top:22px;bottom:18px;width:290px;max-height:none;margin:0}
  body.mira-context-open .main.team-mode #memory-panel{grid-row:auto}
}

/* ---- messages ---- */
.messages{gap:22px;padding-right:4px}
.message{border-radius:14px;padding:14px 18px;line-height:1.7}
.message.user{background:var(--m-user);color:var(--m-ink);border-radius:14px 14px 4px 14px}
.message.assistant{background:transparent;box-shadow:none;padding-left:40px;position:relative;max-width:min(94%,860px)}
.message.assistant::before{content:'';position:absolute;left:6px;top:16px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--m-orb-hi),var(--m-accent) 58%,var(--m-orb-lo));box-shadow:0 0 12px color-mix(in srgb,var(--m-accent) 20%,transparent)}
.message.assistant:not([data-assistant=mira])::before{background:var(--m-soft);border:1px solid var(--m-line-strong);box-shadow:none}
.message-role{color:var(--m-muted);font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:none}
.message.assistant .message-role{color:var(--m-ink)}
.message.error{background:var(--m-danger-bg);color:var(--m-danger-ink)}
.message.system{color:var(--m-muted)}
.message.system.marker{border-top-color:var(--m-line)}
.message-body a{color:var(--m-accent-ink)}
.message-body code,.message-body pre,.message-body th{background:var(--m-code);color:var(--m-ink)}
.message-body blockquote{border-left-color:var(--m-accent);color:var(--m-muted)}
.message-body th,.message-body td{border-color:var(--m-line)}
.artifact-card{background:var(--m-panel);border-color:var(--m-line)}.artifact-card img{background:var(--m-code)}
.attachment-card{border-color:var(--m-line);background:var(--m-panel)}
.empty-project p,.welcome p{color:var(--m-muted)}

/* ---- welcome ---- */
.welcome{padding:56px 0 30px;max-width:620px}
.welcome .mira-orb{width:52px;height:52px;margin-bottom:14px}
.welcome h2{font-size:52px;font-weight:450;letter-spacing:-2.4px;color:var(--m-ink);margin:10px 0 18px}
.welcome p{font-size:16px}
.welcome-points span{border-color:var(--m-line);background:var(--m-panel);color:var(--m-muted)}

/* Shared orbit in chat navigation. */
.mira-orbit{position:relative;width:44px;height:30px;flex:none;margin-right:6px}
.mira-orbit-halo,.mira-orbit-ring{opacity:0;transition:opacity 400ms ease}
.mira-orbit-core{opacity:.5;transition:opacity 400ms ease,box-shadow 400ms ease}
.mira-orbit-halo{position:absolute;inset:3px 6px;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--m-accent) 42%,transparent),transparent 68%);filter:blur(5px)}
.mira-orbit-core{position:absolute;left:15px;top:8px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--m-orb-hi),var(--m-accent) 60%,var(--m-orb-lo))}
.mira-orbit-ring{position:absolute;left:2px;top:-5px;width:40px;height:40px;border-radius:50%;transform:rotate(-24deg) scaleY(.42)}
.mira-orbit-ring::before{content:'';position:absolute;inset:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--m-accent) 50%,transparent)}
.mira-orbit-sat{position:absolute;inset:0}
.mira-orbit-sat::before{content:'';position:absolute;top:-3px;left:17px;width:6px;height:6px;border-radius:50%;background:var(--m-orb-hi);box-shadow:0 0 7px 2px color-mix(in srgb,var(--m-accent) 65%,transparent);transform:scaleY(2.38)}

/* Turn activity. Motion only for current, confirmed work. */
.activity-thread{color:var(--m-muted)}
.activity-thread>summary:hover{color:var(--m-ink)}
.activity-thread[data-failed=true]>summary,.activity-tool[data-state=failed] .activity-tool-state{color:var(--m-danger-ink)}
.activity-body .message.assistant{color:var(--m-muted);background:transparent}
.activity-tool>summary:hover{color:var(--m-ink)}
.activity-tool-time,.activity-tool-state,.activity-empty{color:var(--m-muted)}
.activity-thread[data-working=true]>.activity-body .activity-tool[data-state=running] .activity-tool-state{color:var(--m-accent-ink)}
.activity-thread[data-working=true]>summary .activity-label{background:linear-gradient(100deg,var(--m-muted) 20%,var(--m-ink) 45%,var(--m-muted) 70%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:mira-thought 2.8s ease-in-out infinite}
@keyframes mira-thought{from{background-position:100% 0}to{background-position:0 0}}
.attention-page-hidden .activity-label{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.activity-thread[data-working=true]>summary .activity-label{background:none;color:var(--m-muted);animation:none}}
@media(forced-colors:active){.activity-thread[data-working=true]>summary .activity-label{background:none;color:CanvasText;animation:none}}

/* ---- composer ---- */
.composer{background:var(--m-panel);border:1px solid var(--m-line);border-radius:16px;padding:10px 14px 10px;box-shadow:0 5px 22px var(--m-shadow);transition:border-color var(--m-speed),box-shadow var(--m-speed)}
.composer:focus-within{border-color:color-mix(in srgb,var(--m-accent) 70%,var(--m-line));box-shadow:0 0 0 3px color-mix(in srgb,var(--m-accent) 14%,transparent),0 5px 22px var(--m-shadow)}
.composer textarea{color:var(--m-ink);font-size:14.5px;line-height:1.6}
.composer-controls select,.model-custom{background:var(--m-bg);color:var(--m-ink);border:1px solid var(--m-line);border-radius:7px}
.composer .composer-footer{flex-wrap:wrap;align-items:center;gap:8px}
.composer .composer-controls{flex:1 1 250px;min-width:0;flex-direction:row;gap:6px}
.composer .composer-controls .dc-privacy{flex-basis:100%;font-size:10px;line-height:1.45}
.composer .composer-footer>.actions{margin-left:auto}
.composer .dc-button,.composer .dc-enter{font-size:11px;background:var(--m-bg);border-color:var(--m-line);color:var(--m-ink)}
@media(max-width:640px){.composer .composer-controls{flex-basis:100%;order:1}.composer #composer-input-tools{order:2}.composer .composer-footer>.actions{order:3}}
.hint{color:var(--m-muted)}
.typing-indicator{color:var(--m-muted)}
.selected-task{background:var(--m-soft);color:var(--m-ink)}
.chat-notice,.task-alert{background:var(--m-warn-bg);border-color:var(--m-warn-line);color:var(--m-warn-ink)}
.approval-card{background:var(--m-warn-bg);border-color:var(--m-warn-line);color:var(--m-ink)}
.approval-card .option.selected{outline-color:var(--m-focus)}
.option-note{color:var(--m-muted)}
.approval-card .option .option-note{color:inherit;opacity:.85}
.offers{border-bottom-color:var(--m-line)}


/* ---- team board ---- */
.main.team-mode #team-panel{border-left-color:var(--m-line)}
.task-form,.task-card{background:var(--m-panel);border-color:var(--m-line)}
.task-card.selected{border-color:var(--m-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--m-accent) 35%,transparent)}
.task-result{color:var(--m-ink);border-left-color:var(--m-accent)}
.task-status{background:var(--m-soft);color:var(--m-ink)}
.st-running,.st-queued{background:var(--m-info-bg);color:var(--m-info-ink)}
.st-needs_input,.st-review{background:var(--m-warn-bg);color:var(--m-warn-ink)}
.st-done{background:var(--m-ok-bg);color:var(--m-ok-ink)}
.st-failed,.st-unknown,.st-interrupted{background:var(--m-danger-bg);color:var(--m-danger-ink)}
.team-admin{background:var(--m-panel);color:var(--m-ink);border:1px solid var(--m-line)}
.team-admin::backdrop{background:rgba(20,14,30,.45)}
.admin-row{border-top-color:var(--m-line)}
.invite-link{background:var(--m-soft)}

/* ---- team chat ---- */
.ptc-msg{background:var(--m-panel);border-color:var(--m-line)}
.ptc-msg.ptc-agent{background:var(--m-soft);border-color:color-mix(in srgb,var(--m-accent) 35%,var(--m-line))}
.ptc-msg-author,.ptc-msg-time,.ptc-reply-ref{color:var(--m-muted)}
.ptc-msg.ptc-agent .ptc-msg-author{color:var(--m-ink)}
.ptc-reply-ref{border-left-color:var(--m-line-strong)}
.ptc-composer{background:var(--m-panel);border-color:var(--m-line);border-radius:14px;box-shadow:0 4px 18px var(--m-shadow)}
.ptc-composer:focus-within{border-color:color-mix(in srgb,var(--m-accent) 70%,var(--m-line))}
.ptc-composer textarea{color:var(--m-ink)}
.ptc-mode-bar button.active,.ptc-mode-bar button[aria-pressed=true]{background:var(--m-soft);color:var(--m-ink);border-color:color-mix(in srgb,var(--m-accent) 50%,var(--m-line))}
.ptc-disc-item{background:var(--m-user);color:var(--m-ink)}.ptc-disc-item:hover{background:var(--m-hover)}
.ptc-invoke-badge{color:var(--m-accent-ink)}

/* ---- project processes / client review inside the app ---- */
.pp-sync.pp-error,.pp-overdue,.pp-form-error,.pp-rejected{color:var(--m-danger-ink)}
.pp-approved{color:var(--m-ok-ink)}.pp-pending{color:var(--m-warn-ink)}
.pp-tab.active{background:var(--m-solid);color:var(--m-on-solid)}
.pp-filters button.active{background:var(--m-soft);color:var(--m-ink);border-color:var(--m-accent)}
.pp-column{background:var(--m-side);border:1px solid var(--m-line)}
.pp-column .badge{background:var(--m-panel);color:var(--m-ink)}
.pp-card.overdue{border-color:var(--m-danger-line)}
.pp-agent,.pp-status{background:var(--m-info-bg);color:var(--m-info-ink)}
.pp-agent-running,.pp-agent-needs_input,.pp-agent-waiting_browser,.pp-st-client_review{background:var(--m-warn-bg);color:var(--m-warn-ink)}
.pp-agent-done,.pp-st-done{background:var(--m-ok-bg);color:var(--m-ok-ink)}
.pp-agent-failed,.pp-agent-unknown,.pp-agent-interrupted,.pp-st-rework{background:var(--m-danger-bg);color:var(--m-danger-ink)}
.pp-field input,.pp-field select,.pp-field textarea,.pp-new-link input{background:var(--m-panel);color:var(--m-ink)}
.pp-brief,.pp-rev-text,.pp-comment{background:var(--m-code);color:var(--m-ink)}
.pp-native-box{background:var(--m-side)}
.pp-decision{border-left-color:var(--m-ok-ink)}.pp-decision.pp-rejected{border-left-color:var(--m-danger-line)}
.pp-event{border-bottom-color:var(--m-line)}.pp-event.native{color:var(--m-info-ink)}
.pp-new-link{background:var(--m-soft);border-color:color-mix(in srgb,var(--m-accent) 40%,var(--m-line))}

/* ---- login / invite ---- */
.auth-page{background:radial-gradient(ellipse at 50% -10%,color-mix(in srgb,var(--m-accent) 14%,transparent),transparent 55%),var(--m-bg);flex-direction:column;gap:14px;padding:24px 0}
.auth-card{background:var(--m-panel);border:1px solid var(--m-line);box-shadow:0 10px 36px var(--m-shadow);border-radius:16px;padding:28px}
.auth-card h1{font-size:24px;font-weight:550;letter-spacing:-.6px;margin:14px 0 18px}
.auth-card .mira-brand{margin:0}
.auth-card .mira-brand-name{font-size:22px;font-weight:500;letter-spacing:-.8px;line-height:1.1}
.auth-card label{font-size:12px;color:var(--m-muted)}
.auth-card input{margin-top:5px;padding:10px 12px;border-radius:9px}
.auth-card button[type=submit]{width:100%;padding:11px 15px}
.auth-page .mira-theme{width:min(260px,calc(100% - 32px))}

/* ---- mobile ---- */
@media(max-width:850px){.sidebar{width:220px;padding:18px 12px}.main{padding:18px 20px}}
@media(max-width:760px){
  .layout{display:flex;flex-direction:column;height:100dvh;overflow:hidden}
  .sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:min(300px,86vw);max-height:none;min-height:0;height:100dvh;overflow-y:auto;transform:translateX(-102%);visibility:hidden;transition:transform 220ms ease,visibility 0s linear 220ms;box-shadow:8px 0 30px var(--m-shadow);padding:18px 14px 18px}
  body.mira-menu-open .sidebar{transform:none;visibility:visible;transition:transform 220ms ease}
  .sidebar .development,.sidebar .status-panel{display:block}
  .mira-scrim{position:fixed;inset:0;z-index:29;background:rgba(20,14,30,.42);border:0;border-radius:0;padding:0}
  .mira-menu-button{display:inline-flex}
  .mira-context-word{display:none}
  .main{height:auto;flex:1;min-height:0;padding:12px 14px 10px}
  .main-header{gap:10px;padding-bottom:10px;margin-bottom:6px}
  .chat-title{font-size:16px}
  .message.assistant{padding-left:32px;max-width:100%}
  .message.assistant::before{left:2px;width:20px;height:20px}
  .welcome{padding:22px 0;overflow:auto}.welcome h2{font-size:36px;letter-spacing:-1.4px}
  .composer textarea,.ptc-composer textarea{font-size:16px;min-height:48px}
  .composer{padding:8px 10px}
  .composer-footer{align-items:flex-end;gap:8px}
  .composer-controls{flex-direction:row;flex-wrap:wrap;gap:5px}
  .composer-controls select{max-width:118px}
  .attachment-hint,.hint{font-size:10.5px;line-height:1.45}
}
@media(min-width:761px){.mira-scrim{display:none!important}}
@media(pointer:coarse){.mira-theme button,.mira-head-button,.nav-action,.list-item{min-height:40px}}

@keyframes mira-orbit{to{transform:rotate(360deg)}}
@keyframes mira-pane{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
.artifact-card.failed .artifact-name{color:var(--m-danger-ink)}.browser-bar{color:var(--m-muted)}.browser-bar.needs-help{color:var(--m-warn-ink)}

/* ---- notifications: violet - from AI, azure - from people, both - two halves ----
   The two colours never mix into a third: «both» is a hard 50/50 split with a
   soft glow of each colour on its own side. Static under reduced motion. */
:root{--m-ai:#6d3fd1;--m-ai-glow:#8b5cf680;--m-human:#0b6aa6;--m-human-glow:#0ea5e980;--m-on-dot:#ffffff}
:root[data-theme=dark]{--m-ai:#c4b2ff;--m-ai-glow:#a78bfa99;--m-human:#86d4ff;--m-human-glow:#38bdf899;--m-on-dot:#170f2a}
@media (prefers-color-scheme:dark){:root:not([data-theme]){--m-ai:#c4b2ff;--m-ai-glow:#a78bfa99;--m-human:#86d4ff;--m-human-glow:#38bdf899;--m-on-dot:#170f2a}}
.mira-unread,#ptc-unread.mira-unread,.mira-bell-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;
  margin-left:8px;border-radius:10px;font-size:11px;font-weight:700;line-height:1;color:var(--m-on-dot);background:var(--m-ai);vertical-align:middle;
  font-variant-numeric:tabular-nums;flex:none}
.mira-unread[data-kind=ai],.mira-bell-count[data-kind=ai]{background:var(--m-ai);box-shadow:0 0 9px 1px var(--m-ai-glow)}
.mira-unread[data-kind=human],.mira-bell-count[data-kind=human]{background:var(--m-human);box-shadow:0 0 9px 1px var(--m-human-glow)}
.mira-unread[data-kind=both],.mira-bell-count[data-kind=both]{background:linear-gradient(90deg,var(--m-ai) 0 50%,var(--m-human) 50% 100%);
  box-shadow:-5px 0 10px -1px var(--m-ai-glow),5px 0 10px -1px var(--m-human-glow)}
@keyframes mira-unread-glow{50%{filter:brightness(1.08) saturate(1.1)}}
.mira-unread{animation:mira-unread-glow 2.6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.mira-unread{animation:none}}
.chat-item,.project-item{display:flex;align-items:center;justify-content:space-between;gap:6px}
.chat-item>div:first-child,.chat-item>.sub{flex:1 1 auto}
.chat-item{flex-wrap:wrap}.chat-item>.mira-unread{order:2}.chat-item>.sub{order:3;flex-basis:100%}
.nav-action{display:flex;align-items:center;justify-content:space-between}
.mira-task-discussions:empty{display:none}
.mira-task-discussions{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--m-muted)}
.mira-task-discussions::before{content:"обсуждения"}
.mira-task-discussions .mira-unread{margin-left:0}
/* Bell: a CSS-drawn icon, no font or image request. */
.mira-head-actions{position:relative}
.mira-bell{padding:7px 10px}
.mira-bell-icon{position:relative;display:inline-block;width:14px;height:13px;border:2px solid currentColor;border-bottom-width:2px;border-radius:7px 7px 3px 3px;margin-top:-2px}
.mira-bell-icon::before{content:"";position:absolute;left:-4px;right:-4px;bottom:-3px;height:2px;border-radius:1px;background:currentColor}
.mira-bell-icon::after{content:"";position:absolute;left:50%;bottom:-7px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
.mira-bell-count{margin-left:0}
.mira-bell-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(400px,calc(100vw - 24px));max-height:min(70vh,620px);overflow:auto;
  background:var(--m-panel);color:var(--m-ink);border:1px solid var(--m-line-strong);border-radius:14px;box-shadow:0 14px 40px var(--m-shadow),0 2px 8px var(--m-shadow);padding:12px 14px}
.main-header{position:relative}
.mira-bell-top{display:flex;align-items:center;gap:8px}.mira-bell-top h2{margin:0;font-size:15px;flex:1}
.mira-bell-close{font-size:16px;line-height:1;padding:3px 9px}
.mira-legend{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 4px;font-size:11.5px;color:var(--m-muted)}
.mira-legend-item{display:inline-flex;align-items:center;gap:5px}
.mira-legend-item::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--m-ai)}
.mira-legend-item[data-kind=human]::before{background:var(--m-human)}
.mira-legend-item[data-kind=both]::before{background:linear-gradient(90deg,var(--m-ai) 0 50%,var(--m-human) 50% 100%)}
.mira-bell-section h3{font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--m-muted);margin:12px 0 6px}
/* «Прочитать все» belongs to the updates section only: it sits in its header. */
.mira-bell-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.mira-bell-section-head h3{flex:1 1 auto}
.mira-bell-readall{padding:3px 9px;font-size:12px;white-space:nowrap}
.mira-bell-chat{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;background:transparent;color:var(--m-ink);
  border:1px solid var(--m-line);border-radius:9px;padding:7px 10px;margin-bottom:5px;font-weight:500;font-size:13px}
.mira-bell-chat:hover{background:var(--m-hover)}
.mira-update{border-top:1px solid var(--m-line);padding:9px 0 10px;font-size:13px}
.mira-update strong{display:block;margin:2px 0}
.mira-update ul{margin:4px 0 6px;padding-left:18px;color:var(--m-muted)}
.mira-update-head{display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--m-muted)}
.mira-update-cat{border:1px solid var(--m-line);border-radius:6px;padding:0 6px}
.mira-update-new{background:var(--m-ai);color:var(--m-on-dot);border-radius:6px;padding:0 6px;font-weight:650}
.mira-update.unread{box-shadow:inset 3px 0 0 var(--m-ai);padding-left:10px}
.mira-toasts{position:fixed;right:16px;top:76px;z-index:60;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(100vw - 24px));pointer-events:none}
.mira-toast{pointer-events:auto;display:flex;align-items:center;gap:10px;background:var(--m-panel);color:var(--m-ink);border:1px solid var(--m-line-strong);
  border-radius:12px;padding:10px 10px 10px 12px;box-shadow:0 10px 28px var(--m-shadow);animation:mira-pane var(--m-speed) ease-out;font-size:13px}
.mira-toast-body{display:flex;flex-direction:column;min-width:0;flex:1}.mira-toast-body span{color:var(--m-muted);overflow-wrap:anywhere}
.mira-toast-dot{width:12px;height:12px;border-radius:50%;flex:none;background:var(--m-ai);box-shadow:0 0 8px var(--m-ai-glow)}
.mira-toast[data-kind=human] .mira-toast-dot{background:var(--m-human);box-shadow:0 0 8px var(--m-human-glow)}
.mira-toast[data-kind=both] .mira-toast-dot{background:linear-gradient(90deg,var(--m-ai) 0 50%,var(--m-human) 50% 100%);box-shadow:-3px 0 8px var(--m-ai-glow),3px 0 8px var(--m-human-glow)}
.mira-toast-close{background:transparent;color:var(--m-muted);border:0;font-size:18px;padding:0 6px}
@media(max-width:760px){
  .mira-bell-panel{position:fixed;left:12px;right:12px;top:58px;width:auto;max-height:calc(100vh - 80px)}
  .mira-toasts{left:12px;right:12px;top:62px;width:auto}
}
.chat-filter{box-sizing:border-box;width:100%;min-width:0;margin:6px 0 8px;font-size:13px}
.chat-row{display:flex;align-items:stretch;gap:3px;min-width:0}
.chat-row .chat-item{flex:1;min-width:0;width:auto;margin:0}
.chat-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-pin{flex:none;align-self:center;min-width:36px;min-height:36px;padding:5px;background:transparent;color:var(--m-muted);border:1px solid transparent;border-radius:8px;opacity:.5}
.chat-pin:hover,.chat-pin:focus-visible,.chat-pin[aria-pressed=true]{opacity:1;background:var(--m-panel)}
.chat-pin:focus-visible{outline:2px solid var(--m-accent);outline-offset:1px}
.chat-pin:disabled{cursor:wait;opacity:.35}
.chat-empty{padding:8px 4px}
.chat-agent{display:flex;align-items:center;gap:4px;min-width:0;margin-top:3px;font-size:10.5px;line-height:18px;color:var(--m-muted)}
.chat-agent-icon{position:relative;display:inline-block;flex:none;width:25px;height:18px;pointer-events:none}
.chat-agent .mira-orbit{position:absolute;left:50%;top:50%;margin:-15px 0 0 -22px;transform:scale(.55)}
.chat-agent .mira-orbit-ring{opacity:.35}
.chat-agent .mira-orbit-ring::before{border-color:currentColor}
.chat-agent .mira-orbit-core{background:currentColor}
.chat-agent[data-working=true]{color:var(--m-accent-ink)}
.chat-agent[data-working=true] .mira-orbit-core{opacity:1;background:radial-gradient(circle at 38% 32%,var(--m-orb-hi),var(--m-accent) 60%,var(--m-orb-lo))}
.chat-agent[data-working=true] .mira-orbit-ring{opacity:1}
.chat-agent[data-working=true] .mira-orbit-halo{opacity:.6}
.chat-agent[data-working=true] .mira-orbit-sat{animation:mira-orbit 3.2s linear infinite}
.chat-agent[data-agent-state=needs_input],.chat-agent[data-agent-state=unknown]{color:var(--m-warn-ink)}
.chat-agent[data-agent-state=failed]{color:var(--m-danger-ink)}
@media(prefers-reduced-motion:reduce){.chat-agent .mira-orbit-sat{animation:none!important}}
/* Mira unread badge shares the chat button's flex row: name|badge, kind, then agent status. */
.chat-item>.chat-agent{order:4;flex-basis:100%}
/* Search dialog, day separators and message times in Mira light/dark themes. */
.chat-search{background:var(--m-panel);color:var(--m-ink);border:1px solid var(--m-line-strong)}
.chat-search::backdrop{background:color-mix(in srgb,#000 45%,transparent)}
.search-result{background:var(--m-panel)!important;color:var(--m-ink);border:1px solid var(--m-line)}
.search-result:hover{background:var(--m-hover)!important}
.message-date{background:var(--m-bg);border-color:var(--m-line);color:var(--m-muted);box-shadow:none}
.message-time{color:var(--m-muted)}
.message.search-hit{outline-color:var(--m-accent)}
.sidebar .search-open{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;min-height:36px}
/* Composer v2 controls and message files in Mira light/dark themes. */
.director-composer .dc-button,.director-composer .dc-enter{background:var(--m-panel);color:var(--m-ink);border-color:var(--m-line-strong)}
.director-composer .dc-button[aria-pressed="true"]{background:var(--m-danger-ink);color:var(--m-panel)}
.director-composer .dc-button:focus-visible,.director-composer .dc-enter:focus-visible{outline-color:var(--m-accent)}
.director-composer.dc-dragging{outline-color:var(--m-accent)}
.director-composer .dc-status,.director-composer .dc-privacy{color:var(--m-muted)}
#composer-input-tools{min-width:0;max-width:100%}
#composer-input-status:empty{display:none}
.message-attachments{display:flex;flex-direction:column;gap:4px;margin-top:8px;min-width:0}
.message-attachment{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;min-width:0;font-size:13px}
.message-attachment a{color:var(--m-accent-ink);overflow-wrap:anywhere}
@media(pointer:coarse){.chat-pin{min-width:44px;min-height:44px}}
