body.kc-as-open{overflow:hidden}

/* Kairos account settings sheet — loaded only on chat.
   Uses the chat theme tokens so Light/Dark both work. */
.kc-as-scrim{
  position:fixed;inset:0;z-index:1800;
  background:rgba(8,9,10,.32);
  opacity:0;transition:opacity .18s ease;
}
.kc-as-scrim.kc-as-visible{opacity:1}
.kc-as-sheet{
  position:fixed;top:0;right:0;bottom:0;z-index:1810;
  width:min(460px,100%);
  display:flex;flex-direction:column;
  background:var(--paper);color:var(--ink);
  border-left:1px solid var(--gray-2);
  box-shadow:-20px 0 60px rgba(var(--black-rgb),.12);
  transform:translateX(100%);
  transition:transform .22s cubic-bezier(.2,.8,.2,1);
  outline:none;
}
.kc-as-sheet.kc-as-visible{transform:translateX(0)}
.kc-as-sheet[hidden],.kc-as-scrim[hidden]{display:none}
.kc-as-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  padding:24px 24px 18px;
  border-bottom:1px solid var(--gray-2);
}
.kc-as-eyebrow{
  font-family:var(--font-mono);font-size:10px;line-height:1.3;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gray-5);
  margin-bottom:7px;
}
.kc-as-title{
  margin:0;font-size:21px;line-height:1.2;font-weight:500;letter-spacing:-.02em;
}
.kc-as-close{
  width:32px;height:32px;flex:none;border:1px solid var(--gray-2);border-radius:8px;
  background:transparent;color:var(--gray-5);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;line-height:1;font-family:var(--font-sans);
}
.kc-as-close:hover{color:var(--ink);border-color:var(--gray-3)}
.kc-as-close:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.kc-as-tabs{
  display:flex;gap:4px;padding:10px 18px;border-bottom:1px solid var(--gray-2);
  overflow-x:auto;scrollbar-width:none;
}
.kc-as-tabs::-webkit-scrollbar{display:none}
.kc-as-tab{
  flex:none;border:0;background:transparent;color:var(--gray-5);
  padding:8px 10px;border-radius:7px;cursor:pointer;
  font-family:var(--font-sans);font-size:12.5px;line-height:1.2;
}
.kc-as-tab:hover{color:var(--ink);background:var(--gray-1)}
.kc-as-tab[aria-selected="true"]{color:var(--ink);background:var(--gray-2);font-weight:500}
.kc-as-tab:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.kc-as-body{flex:1;min-height:0;overflow-y:auto;padding:24px}
.kc-as-panel[hidden]{display:none}
.kc-as-loading,.kc-as-error{
  display:flex;align-items:center;gap:9px;
  padding:18px 0;color:var(--gray-5);font-size:13px;
}
.kc-as-loading[hidden],.kc-as-error[hidden]{display:none}
.kc-as-spinner{
  width:13px;height:13px;border-radius:50%;
  border:1.5px solid var(--gray-3);border-top-color:var(--ink);
  animation:kc-as-spin .8s linear infinite;flex:none;
}
@keyframes kc-as-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .kc-as-scrim,.kc-as-sheet{transition:none}
  .kc-as-spinner{animation:none}
}
.kc-as-error{color:var(--signal-fail, #b42318)}
.kc-as-error button{
  margin-left:auto;border:1px solid var(--gray-2);border-radius:7px;
  padding:6px 10px;background:transparent;color:var(--ink);cursor:pointer;
  font-family:var(--font-sans);font-size:12px;
}
.kc-as-profile{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.kc-as-avatar{
  width:44px;height:44px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--gray-2);color:var(--ink);
  font-size:16px;font-weight:600;text-transform:uppercase;
}
.kc-as-profile-main{min-width:0}
.kc-as-profile-email{
  font-size:14px;line-height:1.35;color:var(--ink);
  overflow-wrap:anywhere;
}
.kc-as-profile-meta{
  margin-top:4px;font-family:var(--font-mono);font-size:10.5px;
  line-height:1.4;letter-spacing:.02em;color:var(--gray-5);text-transform:uppercase;
}
.kc-as-rows{border-top:1px solid var(--gray-2)}
.kc-as-row{
  display:grid;grid-template-columns:116px minmax(0,1fr);gap:14px;
  padding:12px 0;border-bottom:1px solid var(--gray-2);
  font-size:13px;line-height:1.4;
}
.kc-as-row dt{color:var(--gray-5)}
.kc-as-row dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.kc-as-hint{font-size:12px;line-height:1.5;color:var(--gray-5);margin:10px 0 0}
.kc-as-balance{display:flex;align-items:baseline;gap:8px;margin:0 0 4px}
.kc-as-balance strong{font-size:40px;line-height:1;font-weight:500;letter-spacing:-.04em}
.kc-as-balance span{font-family:var(--font-mono);font-size:10.5px;color:var(--gray-5);text-transform:uppercase;letter-spacing:.06em}
.kc-as-plan{
  display:inline-flex;align-items:center;height:22px;padding:0 8px;
  border:1px solid var(--gray-2);border-radius:5px;
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gray-5);
}
.kc-as-usage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.kc-as-ledger{width:100%;border-collapse:collapse;font-size:12px}
.kc-as-ledger th{
  padding:7px 0;border-bottom:1px solid var(--gray-2);
  font-family:var(--font-mono);font-size:9.5px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;color:var(--gray-5);text-align:left;
}
.kc-as-ledger td{padding:9px 0;border-bottom:1px solid var(--gray-2);color:var(--ink);vertical-align:top}
.kc-as-ledger th:not(:first-child),.kc-as-ledger td:not(:first-child){padding-left:10px}
.kc-as-ledger .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.kc-as-plus{color:var(--signal-pass,#0a7a5a)}
.kc-as-minus{color:var(--signal-fail,#b42318)}
.kc-as-empty{padding:18px 0;color:var(--gray-5);font-size:13px}
.kc-as-sessions{display:flex;flex-direction:column}
.kc-as-session{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:13px 0;border-bottom:1px solid var(--gray-2);
}
.kc-as-session:first-child{padding-top:0}
.kc-as-session-main{min-width:0}
.kc-as-session-ua{font-size:13px;line-height:1.35;color:var(--ink);overflow-wrap:anywhere}
.kc-as-session-meta{
  margin-top:4px;font-family:var(--font-mono);font-size:10px;line-height:1.45;
  letter-spacing:.01em;color:var(--gray-5);
}
.kc-as-badge{
  display:inline-flex;align-items:center;height:21px;padding:0 7px;
  border:1px solid var(--gray-2);border-radius:4px;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--gray-5);white-space:nowrap;
}
.kc-as-revoke{
  border:1px solid var(--gray-2);border-radius:6px;background:transparent;
  color:var(--gray-5);padding:5px 8px;cursor:pointer;
  font-family:var(--font-sans);font-size:11px;
}
.kc-as-revoke:hover{color:var(--ink);border-color:var(--gray-3)}
.kc-as-revoke:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.kc-as-actions{display:flex;flex-direction:column;gap:9px;margin-top:2px}
.kc-as-btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:36px;padding:0 13px;border-radius:7px;
  border:1px solid var(--gray-2);background:transparent;color:var(--ink);
  font-family:var(--font-sans);font-size:12.5px;cursor:pointer;
}
.kc-as-btn:hover{border-color:var(--gray-3);background:var(--gray-1)}
.kc-as-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.kc-as-btn.danger{color:var(--signal-fail,#b42318)}
.kc-as-btn[disabled]{opacity:.55;cursor:wait}
.kc-as-foot{
  flex:none;padding:13px 24px;border-top:1px solid var(--gray-2);
  font-family:var(--font-mono);font-size:10px;line-height:1.5;
  letter-spacing:.01em;color:var(--gray-5);
}
.kc-as-foot a{color:var(--gray-5);text-decoration:none;border-bottom:1px solid var(--gray-3)}
.kc-as-foot a:hover{color:var(--ink);border-bottom-color:var(--ink)}
@media (max-width:720px){
  .kc-as-sheet{width:100%;border-left:0}
  .kc-as-head{padding:20px 18px 16px}
  .kc-as-body{padding:20px 18px}
  .kc-as-tabs{padding:8px 12px}
  .kc-as-foot{padding:12px 18px}
  .kc-as-row{grid-template-columns:96px minmax(0,1fr);gap:12px}
}

/* Mobile-only account entry (icon rail is hidden ≤720px). */
.kc-mobile-account{display:none}
@media (max-width:720px){
  .kc-mobile-account{
    position:fixed;top:12px;right:12px;z-index:25;
    width:36px;height:36px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--gray-2);background:var(--paper);color:var(--ink);
    font-family:var(--font-sans);font-size:12px;font-weight:600;cursor:pointer;
    text-transform:uppercase;padding:0;
  }
  .kc-mobile-account:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
  body.kc-as-open .kc-mobile-account{visibility:hidden}
}

/* Existing rail menu is absolutely positioned against the shell, which puts it
   off-screen on wide desktop layouts. Anchor it to the rail instead. */
.kc-kosmos-shell .kc-rail-menu{
  position:fixed;left:72px;bottom:72px;width:214px;
}
@media (max-width:720px){
  .kc-kosmos-shell .kc-rail-menu{left:12px;bottom:60px}
}

/* Account data controls (standalone /account/ page; also safe in the sheet). */
.kc-data-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.kc-data-secondary {
  height:34px; padding:0 14px; border:1px solid var(--gray-2, #e5e7eb);
  border-radius:7px; background:#fff; color:var(--ink, #0e0f11);
  font:inherit; font-size:12.5px; cursor:pointer;
}
.kc-data-secondary:hover { background:rgba(var(--ink-rgb),.035); }
.kc-data-secondary:disabled, .kc-acct-danger:disabled { opacity:.5; cursor:default; }
.kc-data-status { margin:10px 0 0; color:var(--gray-6, #6b7280); font-size:12px; line-height:1.5; }
.kc-data-status.is-error { color:#b42318; }
.kc-delete-confirm {
  margin-top:14px; padding:13px 14px; border:1px solid rgba(var(--danger-rgb),.22);
  border-radius:9px; background:rgba(var(--danger-rgb),.035);
}
.kc-delete-confirm p { margin:0 0 10px; color:var(--ink, #0e0f11); font-size:12.5px; line-height:1.55; }
.kc-delete-confirm label { display:block; margin:0 0 5px; color:var(--gray-6, #6b7280); font-size:11.5px; }
.kc-delete-confirm input {
  width:100%; height:36px; box-sizing:border-box; margin:0 0 10px;
  border:1px solid var(--gray-2, #e5e7eb); border-radius:7px;
  background:#fff; color:var(--ink, #0e0f11); font:inherit; font-size:13px; padding:0 10px;
}
.kc-delete-confirm input:focus { outline:none; border-color:rgba(var(--danger-rgb),.55); box-shadow:0 0 0 3px rgba(var(--danger-rgb),.08); }
#delete-btn { color:#b42318; border-color:rgba(var(--danger-rgb),.28); }
#delete-btn:hover { background:rgba(var(--danger-rgb),.045); }
