:root{
  --tg-bg:#ffffff; --tg-text:#000000; --tg-hint:#999999; --tg-link:#2481cc;
  --tg-button:#2481cc; --tg-button-text:#ffffff; --tg-secondary-bg:#f1f1f4;
  --accent:#2481cc;
  --surface:var(--tg-bg); --on-surface:var(--tg-text);
  --card:var(--tg-secondary-bg); --hint:var(--tg-hint);
  --border:rgba(128,128,128,.18); --shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --radius:16px; --radius-sm:10px; --fs:16px; --gap:12px;
  --safe-top:env(safe-area-inset-top,0px); --safe-bottom:env(safe-area-inset-bottom,0px);
}

/* Follow the device light/dark preference when not inside Telegram
   (Telegram supplies its own theme via JS at runtime). */
:root{ color-scheme: light dark; }
@media (prefers-color-scheme: dark){
  :root{
    --tg-bg:#17212b; --tg-text:#ffffff; --tg-hint:#7d8b99; --tg-link:#62a8e6;
    --tg-button:#2481cc; --tg-button-text:#ffffff; --tg-secondary-bg:#232e3c;
    --border:rgba(255,255,255,.10);
    --shadow:0 1px 3px rgba(0,0,0,.4),0 1px 2px rgba(0,0,0,.3);
  }
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:calc(16px*var(--fs-scale,1)); line-height:1.45; color:var(--on-surface);
  background:var(--surface); overscroll-behavior-y:none;
  -webkit-font-smoothing:antialiased; transition:background .25s ease,color .25s ease;
}
#app{max-width:680px;margin:0 auto;min-height:100%;position:relative;padding-bottom:calc(72px + var(--safe-bottom))}
body.on-chat #app{height:100%;padding-bottom:0;overflow:hidden}body.on-chat #screen-chat.active{height:100%;min-height:0;overflow:hidden}
.screen{display:none;animation:fade .22s ease}
.screen.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.hidden{display:none!important}

/* Header */
.appbar{position:sticky;top:0;z-index:20;background:var(--surface);
  padding:calc(12px + var(--safe-top)) 16px 10px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:10px;transition:background .25s}
.appbar h1{font-size:calc(18px*var(--fs-scale,1));font-weight:700;margin:0;flex:1;letter-spacing:-.01em}
.icon-btn{appearance:none;border:0;background:transparent;color:var(--on-surface);
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  font-size:calc(19px*var(--fs-scale,1));transition:background .15s}
.icon-btn:active{background:var(--card)}
#open-filter{margin-left:auto}

/* Search */
.searchbar{padding:10px 16px 6px}
.search-wrap{display:flex;align-items:center;gap:8px;background:var(--card);
  border-radius:var(--radius);padding:10px 14px;border:1px solid transparent;transition:border .15s}
.search-wrap:focus-within{border-color:var(--accent)}
.search-wrap input{flex:1;border:0;background:transparent;color:var(--on-surface);font-size:calc(15px*var(--fs-scale,1));outline:0}
.search-wrap .s-ic{color:var(--hint);font-size:calc(15px*var(--fs-scale,1))}

.active-filter{margin:4px 16px 0;font-size:calc(13px*var(--fs-scale,1));color:var(--accent);cursor:pointer;
  background:color-mix(in srgb,var(--accent) 12%,transparent);padding:6px 12px;border-radius:20px;display:inline-block}

/* Note list */
.list{padding:8px 16px 16px;display:flex;flex-direction:column;gap:var(--gap)}
.note-card{background:var(--card);border-radius:var(--radius);padding:14px 16px;
  box-shadow:var(--shadow);cursor:pointer;border:1px solid var(--border);
  transition:transform .12s ease,box-shadow .12s ease}
.note-card:active{transform:scale(.985)}
.nc-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.badge{font-size:calc(11px*var(--fs-scale,1));font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);
  padding:2px 8px;border-radius:6px}
.muted{color:var(--hint);font-size:calc(12px*var(--fs-scale,1))}
.nc-top .muted{margin-left:auto}
.nc-body{font-size:calc(15px*var(--fs-scale,1));line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nc-tags{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
.tags .tag{font-size:calc(12px*var(--fs-scale,1));color:var(--hint);background:var(--surface);
  border:1px solid var(--border);padding:3px 9px;border-radius:20px}
.empty{text-align:center;color:var(--hint);padding:48px 24px;font-size:calc(15px*var(--fs-scale,1))}
.empty .big{font-size:calc(40px*var(--fs-scale,1));display:block;margin-bottom:10px;opacity:.5}

/* Loading skeleton */
.skel{background:var(--card);border-radius:var(--radius);height:84px;
  position:relative;overflow:hidden;border:1px solid var(--border)}
.skel::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(128,128,128,.12),transparent);
  animation:shimmer 1.3s infinite}
@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* Detail */
.detail-body{padding:16px}
.detail-meta{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.detail-text{font-size:calc(16px*var(--fs-scale,1));line-height:1.6;white-space:pre-wrap;word-break:break-word}
.detail-actions{display:flex;gap:8px;padding:10px;margin:18px 12px calc(8px + var(--safe-bottom));position:sticky;bottom:calc(80px + var(--safe-bottom));z-index:15;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border:1px solid var(--border);border-radius:999px;box-shadow:0 8px 28px rgba(0,0,0,.16),0 2px 6px rgba(0,0,0,.08)}

/* Buttons */
.btn{appearance:none;border:0;cursor:pointer;font-size:calc(15px*var(--fs-scale,1));font-weight:600;
  padding:13px 18px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;
  flex:1;transition:transform .12s ease,box-shadow .18s ease,background .18s ease,opacity .15s ease;
  -webkit-tap-highlight-color:transparent;user-select:none}
.btn:active{transform:translateY(1px) scale(.985);opacity:.94}
.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:2px}
.btn.secondary{background:var(--card);color:var(--on-surface)}
.btn.danger{background:transparent;color:#e0533d;border:1px solid color-mix(in srgb,#e0533d 40%,transparent)}

/* Edit */
.field{padding:0 16px 14px}
.field label{display:block;font-size:calc(13px*var(--fs-scale,1));color:var(--hint);margin:14px 0 6px;font-weight:600}
.field textarea,.field input{width:100%;border:1px solid var(--border);background:var(--card);
  color:var(--on-surface);border-radius:var(--radius-sm);padding:12px 14px;font-size:calc(15px*var(--fs-scale,1));
  font-family:inherit;outline:0;transition:border .15s}
.field textarea:focus,.field input:focus{border-color:var(--accent)}
.field textarea{min-height:160px;resize:vertical;line-height:1.5}

/* Tag chips selectable */
.tags.selectable{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px}
.tags.selectable .tag{cursor:pointer;transition:all .12s}
.tags.selectable .tag.selected{background:var(--accent);color:#fff;border-color:var(--accent)}

/* Stats */
.stats-body{padding:16px}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.stat-card{background:var(--card);border-radius:var(--radius);padding:18px;border:1px solid var(--border)}
.stat-card .num{font-size:calc(30px*var(--fs-scale,1));font-weight:800;letter-spacing:-.02em}
.stat-card .lbl{font-size:calc(13px*var(--fs-scale,1));color:var(--hint);margin-top:2px}
.section-title{font-size:calc(13px*var(--fs-scale,1));font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--hint);margin:20px 0 10px}
.bytype-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.bytype-row .name{width:90px;font-size:calc(14px*var(--fs-scale,1));text-transform:capitalize}
.bar{flex:1;height:8px;background:var(--card);border-radius:6px;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--accent);border-radius:6px;transition:width .5s ease}
.bytype-row .cnt{font-size:calc(13px*var(--fs-scale,1));color:var(--hint);width:34px;text-align:right}

/* Settings */
.settings-body{padding:8px 16px 16px}
.set-group{background:var(--card);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;border:1px solid var(--border)}
.set-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}
.set-row:last-child{border-bottom:0}
.set-row .label{flex:1;font-size:calc(15px*var(--fs-scale,1))}
.set-row .sub{font-size:calc(12px*var(--fs-scale,1));color:var(--hint);margin-top:2px}
.seg{display:flex;background:var(--surface);border-radius:9px;padding:3px;border:1px solid var(--border)}
.seg button{appearance:none;border:0;background:transparent;color:var(--on-surface);
  padding:7px 14px;border-radius:7px;font-size:calc(13px*var(--fs-scale,1));cursor:pointer;font-weight:600;transition:.15s}
.seg button.on{background:var(--accent);color:#fff}
.swatches{display:flex;gap:10px}
.swatch{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:.15s}
.swatch.on{border-color:var(--on-surface);transform:scale(1.12)}
.switch{width:48px;height:28px;border-radius:20px;background:var(--border);position:relative;cursor:pointer;transition:.2s}
.switch.on{background:var(--accent)}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch.on::after{left:23px}
.about{text-align:center;color:var(--hint);font-size:calc(12px*var(--fs-scale,1));margin-top:8px}

/* Bottom nav */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;
  max-width:680px;margin:0 auto;display:flex;background:var(--surface);
  border-top:1px solid var(--border);padding-bottom:var(--safe-bottom);transition:background .25s}
.bottom-nav button{flex:1;appearance:none;border:0;background:transparent;color:var(--hint);
  padding:10px 0 12px;font-size:calc(11px*var(--fs-scale,1));cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;transition:color .15s}
.bottom-nav button .ic{font-size:calc(21px*var(--fs-scale,1))}
.bottom-nav button.on{color:var(--accent)}

/* Toast */
.toast{position:fixed;bottom:calc(86px + var(--safe-bottom));left:50%;transform:translateX(-50%);
  background:rgba(20,20,20,.92);color:#fff;padding:11px 18px;border-radius:24px;font-size:calc(14px*var(--fs-scale,1));
  z-index:50;box-shadow:0 4px 16px rgba(0,0,0,.3);animation:toastIn .25s ease}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}

/* Bottom sheet */
.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40;animation:fade .2s}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--surface);
  border-radius:20px 20px 0 0;padding:8px 16px calc(20px + var(--safe-bottom));
  max-width:680px;margin:0 auto;animation:sheetUp .26s cubic-bezier(.2,.8,.2,1)}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
.sheet-handle{width:36px;height:4px;border-radius:3px;background:var(--border);margin:8px auto 14px}
.sheet h3{margin:0 0 12px;font-size:calc(16px*var(--fs-scale,1))}
.sheet select{width:100%;padding:11px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);
  background:var(--card);color:var(--on-surface);font-size:calc(15px*var(--fs-scale,1));margin-bottom:6px}
.sheet-actions{display:flex;gap:10px;margin-top:16px}

/* ---- SVG icon system ---- */
.ic-svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle;flex:none}
.icon-btn .ic-svg{width:22px;height:22px}
.search-wrap .s-ic{width:18px;height:18px;color:var(--hint);stroke-width:2}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-ic{width:18px;height:18px;stroke-width:2}
.bottom-nav button .nav-ic{width:23px;height:23px;stroke-width:1.8}
.empty-ic{width:46px;height:46px;stroke-width:1.4;color:var(--hint);opacity:.55;margin-bottom:14px}
.empty-ic{display:block;margin:0 auto 14px}

/* ---- Chat ---- */
#screen-chat.active { display: flex; flex-direction: column; }
.chat-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.chat-log {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  padding-bottom: calc(150px + var(--safe-bottom));
  scroll-behavior: smooth;
}

/* message rows + avatars */
.msg-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  max-width: 100%;
}
.msg-row.me { flex-direction: row-reverse; }
.msg-row::before {
  content: "";
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  margin-bottom: 2px;
  background-size: 15px 15px;
  background-repeat: no-repeat;
  background-position: center;
}
.msg-row.bot::before {
  background-color: color-mix(in srgb, var(--accent) 20%, var(--card));
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a274ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/></svg>");
}
.msg-row.me::before { display: none; }

.bubble {
  max-width: 78%;
  padding: 10px 14px;
  border-radius: 18px;
  font-size: 15px;
  line-height: 1.45;
  white-space: pre-wrap;
  word-wrap: break-word;
  overflow-wrap: anywhere;
  animation: bubble-in .22s cubic-bezier(.22,.61,.36,1);
}
.bubble.me {
  background: var(--accent);
  color: #fff;
  border-bottom-right-radius: 6px;
  box-shadow: 0 1px 2px rgba(0,0,0,.18);
}
.bubble.bot {
  background: var(--card);
  color: var(--on-surface);
  border: 1px solid var(--border);
  border-bottom-left-radius: 6px;
}
.bubble.error { border-color: #e0564e; color: #e0564e; }

@keyframes bubble-in {
  from { opacity: 0; transform: translateY(6px) scale(.98); }
  to   { opacity: 1; transform: none; }
}

/* typing indicator */
.bubble.typing {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 13px 14px;
}
.bubble.typing .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--hint);
  opacity: .5;
  animation: typing-bounce 1.2s infinite ease-in-out;
}
.bubble.typing .dot:nth-child(2) { animation-delay: .15s; }
.bubble.typing .dot:nth-child(3) { animation-delay: .3s; }
@keyframes typing-bounce {
  0%, 60%, 100% { transform: translateY(0); opacity: .5; }
  30% { transform: translateY(-4px); opacity: 1; }
}

/* empty state */
.chat-empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 10px;
  color: var(--hint);
  padding: 32px 24px;
}
.chat-empty-ico {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  margin-bottom: 4px;
}
.chat-empty .empty-ic {
  width: 30px;
  height: 30px;
  stroke: var(--accent);
  stroke-width: 1.6;
  opacity: 1;
}
.chat-empty-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--on-surface);
  margin: 0;
}
.chat-empty-sub {
  font-size: 14px;
  line-height: 1.5;
  max-width: 280px;
  margin: 0;
}
.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 10px;
}
.chip {
  appearance: none;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--on-surface);
  font-size: 13px;
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.chip:hover { border-color: var(--accent); }
.chip:active { transform: scale(.96); background: color-mix(in srgb, var(--accent) 12%, var(--card)); }

/* composer */
.chat-input {
  position: fixed;
  left: 0;
  right: 0;
  bottom: calc(72px + var(--safe-bottom));
  max-width: 680px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: color-mix(in srgb, var(--surface) 92%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--border);
  z-index: 20;
}
.chat-input input {
  flex: 1;
  border: 1px solid transparent;
  background: color-mix(in srgb, var(--on-surface) 6%, var(--card));
  color: var(--on-surface);
  border-radius: 22px;
  padding: 12px 16px;
  font-size: 15px;
  outline: 0;
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--on-surface) 4%, transparent);
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.chat-input input:focus { border-color: color-mix(in srgb, var(--accent) 55%, transparent); background: var(--card); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }
.chat-input input::placeholder { color: color-mix(in srgb, var(--on-surface) 42%, transparent); }
.chat-send {
  appearance: none;
  border: 0;
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .12s ease, opacity .15s ease, background .15s ease;
}
.chat-send .ic-svg { width: 20px; height: 20px; }
.chat-send:active { transform: scale(.92); }
.chat-send:disabled {
  opacity: .4;
  cursor: default;
  background: var(--border);
}

/* ---- Note detail / edit (redesign) ---- */
.ro-badge{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:calc(12px*var(--fs-scale,1));font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);padding:5px 10px;border-radius:999px}
.ro-badge .ic-svg{width:13px;height:13px}
#screen-detail .detail-body{padding:16px 16px 8px}
.detail-belowinfo{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.detail-belowinfo .detail-meta{margin-bottom:0}
.detail-belowinfo .ro-badge{margin-left:0}
.detail-meta{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.detail-meta .badge{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);padding:4px 10px;border-radius:999px}
.detail-text{font-size:calc(16px*var(--fs-scale,1));line-height:1.6;white-space:pre-wrap;word-break:break-word;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}
#detail-tags{margin-top:14px}
.info-card{margin-top:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.info-row{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;font-size:calc(14px*var(--fs-scale,1));border-bottom:1px solid var(--border)}
.info-row:last-child{border-bottom:0}
.info-row .k{color:var(--hint)}
.info-row .v{font-weight:600;text-align:right}
.share-card{margin-top:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}
.share-row{display:flex;align-items:center;gap:10px}
.share-row .share-ic{width:18px;height:18px;color:var(--accent);flex:0 0 auto}
.share-link{flex:1;font-size:calc(13px*var(--fs-scale,1));font-family:ui-monospace,monospace;color:var(--on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}
#copy-link{flex:0 0 auto}
.share-hint{font-size:calc(12px*var(--fs-scale,1));color:var(--hint);margin-top:8px}
.btn.full{width:100%;margin-top:12px}
.detail-actions .btn{flex:1}
.detail-actions .btn.danger{flex:0 0 auto}

/* edit tag chips with remove + add */
.chip-edit{display:flex;flex-wrap:wrap;gap:8px;min-height:8px}
.chip-edit .ctag{display:inline-flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border-radius:999px;padding:6px 6px 6px 12px;font-size:calc(14px*var(--fs-scale,1));font-weight:500}
.chip-edit .ctag button{appearance:none;border:0;background:transparent;color:inherit;cursor:pointer;display:inline-flex;padding:2px;border-radius:999px;opacity:.7}
.chip-edit .ctag button:active{opacity:1;transform:scale(.9)}
.chip-edit .ctag .ic-svg{width:13px;height:13px;stroke-width:2.5}
.chip-edit .empty{color:var(--hint);font-size:calc(13px*var(--fs-scale,1))}
.tag-add{display:flex;gap:8px;margin-top:10px}
.tag-add input{flex:1;border:1px solid var(--border);background:var(--card);color:var(--on-surface);border-radius:var(--radius-sm);padding:10px 12px;font-size:calc(15px*var(--fs-scale,1));outline:0}
.tag-add input:focus{border-color:var(--accent)}
.tag-add .btn{flex:0 0 auto}
.tag-suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.tag-suggest .sug{cursor:pointer;font-size:calc(13px*var(--fs-scale,1));color:var(--hint);background:var(--card);border:1px solid var(--border);border-radius:999px;padding:5px 11px}
.tag-suggest .sug:active{border-color:var(--accent);color:var(--accent)}

.stats-span { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 2px 18px; }
.stats-span span {
  font-size: 12px; color: var(--hint);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 999px; padding: 4px 10px;
}

/* ---- Empty / error states (refactor) ---- */
.empty .empty-ic{width:48px;height:48px;color:var(--hint);opacity:.5;margin-bottom:12px}
.empty-title{font-size:calc(17px*var(--fs-scale,1));font-weight:600;color:var(--on-surface);margin-bottom:4px}
.empty-sub{font-size:calc(14px*var(--fs-scale,1));color:var(--hint);max-width:280px;margin:0 auto;line-height:1.45}
.empty-action{margin-top:18px;display:inline-flex;width:auto;padding:10px 20px}
.inline-error{color:var(--hint);font-size:calc(14px*var(--fs-scale,1));text-align:center;padding:20px 8px;line-height:1.5}
.link-btn{appearance:none;border:0;background:transparent;color:var(--accent);
  font:inherit;font-weight:600;cursor:pointer;padding:0}
.link-btn:active{opacity:.6}

/* ---- Filter sheet labels (moved from inline styles) ---- */
.sheet-label{font-size:calc(13px*var(--fs-scale,1));color:var(--hint)}
.sheet-label-2{margin-top:10px;display:block}

/* ---- Export row ---- */
.export-row{padding:0}

/* ---- Accessibility: visible focus for keyboard users ---- */
button:focus-visible,a:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.usage-rows{display:flex;flex-direction:column;gap:14px;padding:4px 16px 12px}
.usage-row{display:flex;flex-direction:column;gap:6px}
.usage-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.usage-label{font-size:calc(15px*var(--fs-scale,1));color:var(--on-surface)}
.usage-label .sub{font-size:calc(12px*var(--fs-scale,1));color:var(--tg-hint);margin-top:1px}
.usage-count{font-size:calc(14px*var(--fs-scale,1));color:var(--tg-hint);white-space:nowrap;font-variant-numeric:tabular-nums}
.usage-sep{opacity:.5;padding:0 1px}
.usage-bar{height:5px;border-radius:999px;background:color-mix(in srgb,var(--on-surface) 12%,transparent);overflow:hidden}
.usage-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .35s ease}
.plan-meta{font-size:calc(15px*var(--fs-scale,1));color:var(--on-surface);font-weight:600;margin:-4px 16px 10px;padding:0}
.usage-rows .usage-row:first-child{margin-top:2px}
.newnote-btn{display:inline-flex;align-items:center;gap:7px;flex:none;appearance:none;border:0;cursor:pointer;background:transparent;padding:6px 4px 6px 0;font-size:calc(20px*var(--fs-scale,1));font-weight:700;letter-spacing:-.01em;color:var(--accent);border-radius:999px;transition:background .15s}
.newnote-btn .ic-svg{width:1.05em;height:1.05em;color:var(--accent);flex:none}
.newnote-btn:active{opacity:.6}
.detail-text .note-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px;word-break:break-all;cursor:pointer}
.detail-text .note-link:active{opacity:.6}

/* Collapsible "Note details" + Sharing title */
.details-block{margin-top:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.details-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;background:none;border:0;color:var(--on-surface);font:inherit;font-weight:600;font-size:calc(14px*var(--fs-scale,1));cursor:pointer;text-align:left}
.details-head:active{opacity:.7}
.details-block .info-card{margin-top:0;border:0;border-top:1px solid var(--border);border-radius:0}
.details-chev{width:9px;height:9px;border-right:2px solid var(--hint);border-bottom:2px solid var(--hint);transform:rotate(45deg);transition:transform .18s ease;flex:0 0 auto;margin-right:3px}
.details-head[aria-expanded="true"] .details-chev{transform:rotate(-135deg)}
.share-title{font-weight:600;font-size:calc(14px*var(--fs-scale,1));margin-bottom:10px}

/* Modern detail action bar buttons */
.detail-actions .btn{flex:1;border-radius:999px;padding:12px 16px;min-height:46px;font-weight:600}
.detail-actions .btn .btn-ic{transition:transform .15s ease}
.detail-actions .btn:active .btn-ic{transform:scale(.9)}
.detail-actions .btn.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,#fff),var(--accent));color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 38%,transparent)}
.detail-actions .btn.primary:active{box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent)}
.detail-actions .btn.secondary{background:color-mix(in srgb,var(--card) 70%,transparent);border:1px solid var(--border);color:var(--on-surface)}
.detail-actions .btn.danger{flex:0 0 auto;width:46px;padding:0;border-radius:50%;background:color-mix(in srgb,#e0533d 12%,transparent);border:1px solid color-mix(in srgb,#e0533d 30%,transparent);color:#e0533d;gap:0}
.detail-actions .btn.danger:active{background:color-mix(in srgb,#e0533d 22%,transparent)}
.detail-actions .btn.danger .btn-label{display:none}
.detail-actions .btn.danger .btn-ic{width:20px;height:20px}

/* Structured link cards (indexed link previews) */
.link-cards { display: flex; flex-direction: column; gap: 10px; margin: 14px 0 4px; }
.link-card {
  display: block; text-decoration: none; color: inherit;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 14px; padding: 12px 14px;
  transition: background .15s ease, transform .1s ease, border-color .15s ease;
}
.link-card:active { transform: scale(.99); }
.link-card:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
.link-card-host {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; color: var(--accent);
  text-transform: lowercase; letter-spacing: .01em; margin-bottom: 10px;
}
.link-card-ic { font-size: 12px; opacity: .9; }
.link-card-title { font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--on-surface); }
.link-card-desc {
  margin-top: 4px; font-size: 13px; line-height: 1.45; color: var(--hint);
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}

.link-card-ic .lc-svg { display: block; }
.link-card-author {
  display: flex; align-items: center; gap: 5px;
  margin-top: 8px; padding-top: 8px;
  border-top: 1px solid var(--border);
  font-size: 12px; font-weight: 500; color: var(--hint);
}
.link-card-author .lc-svg { flex: 0 0 auto; opacity: .8; }
.link-card-author span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

body.deep-link #screen-detail .appbar{display:none}

.intent-chip{cursor:pointer;border:0;font:inherit;background:var(--accent-soft,rgba(127,90,240,.14));color:var(--accent,#7f5af0)}
.intent-chip:active{opacity:.7}

/* ===== Stats / Overview refactor ===== */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.stat-card{background:var(--card);border-radius:var(--radius-sm,12px);padding:12px 10px;border:1px solid var(--border);display:flex;flex-direction:column;gap:2px;min-width:0}
.stat-card .num{font-size:calc(22px*var(--fs-scale,1));font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--on-surface);overflow:hidden;text-overflow:ellipsis}
.stat-card .lbl{font-size:calc(11px*var(--fs-scale,1));color:var(--hint);margin-top:0;text-transform:none;letter-spacing:0}
.stats-span{display:flex;flex-wrap:wrap;gap:6px;margin:0 2px 18px;color:var(--hint);font-size:calc(12px*var(--fs-scale,1))}
.stats-span span{display:inline-flex;align-items:center}
.stats-span span+span::before{content:"\00b7";margin:0 6px;color:var(--border)}
.stat-section{display:block;background:var(--card);border:1px solid var(--border);border-radius:var(--radius,16px);padding:14px;margin:0 0 12px}
.stat-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:calc(14px*var(--fs-scale,1));font-weight:700;letter-spacing:-.01em;color:var(--on-surface);margin:0 0 12px;text-transform:none}
.plan-badge{font-size:calc(11px*var(--fs-scale,1));font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:999px;padding:2px 9px}
.stat-hint{margin:-4px 0 12px;color:var(--hint);font-size:calc(12px*var(--fs-scale,1));line-height:1.4}
.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.export-grid .btn{margin:0;width:100%;min-height:46px;padding:12px 16px;border-radius:var(--radius-sm,12px);border:1px solid var(--border);font-weight:600}
.stat-section .nc-tags{margin:0}
.stat-section #stats-bytype .bytype-row:last-child{margin-bottom:0}
.tag-chip{cursor:pointer;border:0;font:inherit;line-height:inherit;transition:background .12s,transform .12s}
.tag-chip:active{transform:scale(.96);background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.stat-section .stat-section-head .plan-badge{font-variant-numeric:tabular-nums}

.info-row .v .src-link,.src-link{color:var(--accent);text-decoration:none;font-weight:600;cursor:pointer}
.src-link:active{opacity:.6}

/* ----- Brain tab (second-brain export) ----- */
.brain-wrap{padding:16px 14px 24px;display:flex;flex-direction:column;gap:16px}
.brain-lead{margin:0;font-size:calc(16px*var(--fs-scale,1));line-height:1.5;color:var(--on-surface)}
.brain-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;color:var(--on-surface)}
.brain-steps li{line-height:1.45}
.brain-linkbox{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}
.brain-link{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(15px*var(--fs-scale,1));word-break:break-all;padding:12px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);user-select:all}
.brain-linkbox .btn{width:100%;border-radius:999px;padding:12px 16px;min-height:46px}
.brain-linkbox .btn:not(.primary){border:1px solid var(--border);background:transparent;color:var(--on-surface)}
.brain-status{color:var(--hint);font-size:calc(15px*var(--fs-scale,1));text-align:center;padding:8px 0}
.brain-used{color:var(--on-surface);font-size:calc(15px*var(--fs-scale,1));line-height:1.45}
.brain-note{margin:0;color:var(--hint);font-size:calc(13px*var(--fs-scale,1));line-height:1.45}

/* Brain search-query log */
.brain-log-wrap { margin-top: 22px; }
.brain-log-title { font-size: 15px; margin: 0 0 2px; }
.brain-log-sub { font-size: 12px; color: var(--hint); margin: 0 0 10px; }
.brain-log { display: flex; flex-direction: column; gap: 8px; }
.brain-log-row {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px 12px;
}
.brain-log-q { font-size: 14px; word-break: break-word; }
.brain-log-meta {
  display: flex; justify-content: space-between;
  margin-top: 4px; font-size: 12px; color: var(--hint);
}
.brain-log-empty { font-size: 13px; color: var(--hint); padding: 6px 0; }

/* Brain log: client label + expandable session details */
.brain-log-row { cursor: pointer; }
.brain-log-head {
  display: flex; justify-content: space-between; align-items: center;
  gap: 8px; margin-bottom: 3px;
}
.brain-log-client {
  font-size: 13px; font-weight: 600; color: var(--accent);
}
.brain-log-tap { font-size: 11px; color: var(--hint); opacity: .8; }
.brain-log-detail { display: none; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border); }
.brain-log-row.open .brain-log-detail { display: block; }
.brain-log-row.open .brain-log-tap { visibility: hidden; }
.brain-log-drow { display: flex; gap: 8px; font-size: 12px; padding: 2px 0; }
.brain-log-dk { color: var(--hint); flex: 0 0 84px; }
.brain-log-dv { color: var(--text); word-break: break-all; flex: 1; }
