/* from dashboard.html */

  * { margin:0; padding:0; box-sizing:border-box; font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif; }
  body { background:#f6f6f4; color:#1f1f1c; display:flex; height:900px; overflow:hidden; }

  /* ---------- Sidebar ---------- */
  .sidebar { width:240px; background:#ffffff; border-right:1px solid #ebebe8; display:flex; flex-direction:column; padding:20px 12px; flex-shrink:0; }
  .logo { display:flex; align-items:center; gap:10px; padding:4px 10px 20px; }
  .logo-mark { width:32px; height:32px; border-radius:8px; background:linear-gradient(135deg,#6d5ef7,#9b8cff); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:11px; letter-spacing:0.2px; }
  .logo-name { font-weight:700; font-size:14px; letter-spacing:-0.3px; white-space:nowrap; }
  .logo-sub { font-size:10.5px; color:#9b9b94; line-height:1.25; }
  .nav-section { font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:#a3a39c; padding:14px 10px 6px; }
  .nav-item { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; font-size:13.5px; color:#4b4b45; cursor:pointer; margin-bottom:2px; }
  .nav-item:hover { background:#f2f2ef; }
  .nav-item.active { background:#efedff; color:#5245d6; font-weight:600; }
  .nav-item .ico { width:18px; text-align:center; }
  .nav-badge { margin-left:auto; background:#ff6b6b; color:#fff; font-size:10.5px; font-weight:700; border-radius:10px; padding:1px 7px; }
  .sidebar-user { margin-top:auto; display:flex; align-items:center; gap:10px; padding:10px; border-radius:10px; background:#f8f8f6; border:1px solid #ebebe8; }
  .ava { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:13px; flex-shrink:0; }
  .sidebar-user .name { font-size:13px; font-weight:600; }
  .sidebar-user .role { font-size:11px; color:#9b9b94; }

  /* ---------- Main ---------- */
  .main { flex:1; overflow:hidden; padding:24px 32px; }
  .topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
  .greeting h1 { font-size:22px; letter-spacing:-0.3px; }
  .greeting p { font-size:13px; color:#8b8b84; margin-top:3px; }
  .topbar-right { display:flex; align-items:center; gap:12px; }
  .search { display:flex; align-items:center; gap:8px; background:#fff; border:1px solid #e6e6e2; border-radius:9px; padding:8px 14px; width:260px; color:#a3a39c; font-size:13px; }
  .tg-status { display:flex; align-items:center; gap:8px; background:#eaf6ff; border:1px solid #cfe9ff; color:#1c7ed6; font-size:12.5px; font-weight:600; border-radius:9px; padding:8px 12px; }
  .dot { width:7px; height:7px; border-radius:50%; background:#2fb344; }

  .grid { display:grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap:16px; }

  /* stat cards */
  .stat { background:#fff; border:1px solid #ebebe8; border-radius:14px; padding:16px 18px; }
  .stat .label { font-size:12.5px; color:#8b8b84; display:flex; align-items:center; gap:6px; }
  .stat .value { font-size:28px; font-weight:800; letter-spacing:-0.5px; margin-top:6px; }
  .stat .delta { font-size:12px; margin-top:4px; font-weight:600; }
  .up { color:#2b9348; } .down { color:#e03131; } .neutral { color:#8b8b84; }

  .row2 { display:grid; grid-template-columns: 1.6fr 1fr; gap:16px; margin-top:16px; }
  .card { background:#fff; border:1px solid #ebebe8; border-radius:14px; padding:18px 20px; }
  .card h3 { font-size:14.5px; margin-bottom:14px; display:flex; align-items:center; justify-content:space-between; }
  .card h3 .more { font-size:12px; color:#6d5ef7; font-weight:600; cursor:pointer; }

  /* level */
  .level-wrap { display:flex; align-items:center; gap:16px; }
  .level-ring { width:74px; height:74px; border-radius:50%; background:conic-gradient(#6d5ef7 0 82%, #ecebff 82% 100%); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .level-ring-inner { width:58px; height:58px; border-radius:50%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; }
  .level-ring-inner b { font-size:18px; } .level-ring-inner span { font-size:9.5px; color:#9b9b94; }
  .level-info { flex:1; }
  .level-title { font-weight:700; font-size:15px; }
  .level-title small { color:#6d5ef7; background:#efedff; padding:2px 8px; border-radius:6px; font-size:11px; margin-left:8px; }
  .xp-bar { height:8px; background:#f0f0ed; border-radius:6px; margin-top:10px; overflow:hidden; }
  .xp-fill { height:100%; width:82%; border-radius:6px; background:linear-gradient(90deg,#6d5ef7,#9b8cff); }
  .xp-text { font-size:11.5px; color:#8b8b84; margin-top:6px; }

  /* badges */
  .badges { display:flex; gap:12px; }
  .badge { flex:1; text-align:center; padding:12px 6px; border-radius:12px; border:1px solid #efefec; background:#fafaf8; }
  .badge .b-ico { font-size:24px; }
  .badge .b-name { font-size:11px; font-weight:600; margin-top:6px; }
  .badge .b-desc { font-size:9.5px; color:#a3a39c; margin-top:2px; }
  .badge.locked { opacity:.38; filter:grayscale(1); }
  .badge.gold { background:#fff8e6; border-color:#f5e3ad; }

  /* chart */
  .chart { display:flex; align-items:flex-end; gap:14px; height:150px; padding:0 4px; }
  .bar-g { flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; height:100%; justify-content:flex-end; }
  .bar { width:100%; max-width:46px; border-radius:7px 7px 3px 3px; background:#e3e0ff; position:relative; }
  .bar.hot { background:linear-gradient(180deg,#6d5ef7,#9b8cff); }
  .bar-val { font-size:11px; font-weight:700; color:#5245d6; }
  .bar-lbl { font-size:10.5px; color:#a3a39c; }

  /* tasks list */
  .task-row { display:flex; align-items:center; gap:12px; padding:11px 4px; border-bottom:1px solid #f2f2ef; }
  .task-row:last-child { border-bottom:none; }
  .chk { width:17px; height:17px; border-radius:5px; border:1.5px solid #d4d4cf; flex-shrink:0; }
  .chk.done { background:#6d5ef7; border-color:#6d5ef7; position:relative; }
  .chk.done::after { content:"✓"; color:#fff; font-size:11px; position:absolute; top:0px; left:3px; }
  .t-title { font-size:13px; flex:1; }
  .t-title.done { color:#b5b5ae; text-decoration:line-through; }
  .chip { font-size:10.5px; font-weight:600; padding:3px 9px; border-radius:6px; white-space:nowrap; }
  .chip.video { background:#fff0f0; color:#d6455e; }
  .chip.quick { background:#e9f9ee; color:#2b9348; }
  .chip.dev { background:#eaf3ff; color:#1c7ed6; }
  .chip.design { background:#fff4e6; color:#e8720c; }
  .t-due { font-size:11.5px; color:#a3a39c; white-space:nowrap; }
  .t-due.warn { color:#e03131; font-weight:600; }

  /* leaderboard */
  .lead-row { display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px solid #f2f2ef; font-size:13px; }
  .lead-row:last-child { border-bottom:none; }
  .lead-pos { width:20px; font-weight:700; color:#a3a39c; font-size:12px; }
  .lead-row.me { background:#f7f6ff; border-radius:9px; padding:9px 8px; margin:0 -6px; }
  .lead-name { flex:1; font-weight:500; }
  .lead-pts { font-weight:700; color:#5245d6; font-size:12.5px; }

/* from kanban.html */

  * { margin:0; padding:0; box-sizing:border-box; font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif; }
  body { background:#f6f6f4; color:#1f1f1c; display:flex; height:900px; overflow:hidden; }

  .sidebar { width:240px; background:#ffffff; border-right:1px solid #ebebe8; display:flex; flex-direction:column; padding:20px 12px; flex-shrink:0; }
  .logo { display:flex; align-items:center; gap:10px; padding:4px 10px 20px; }
  .logo-mark { width:32px; height:32px; border-radius:8px; background:linear-gradient(135deg,#6d5ef7,#9b8cff); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:11px; letter-spacing:0.2px; }
  .logo-name { font-weight:700; font-size:14px; letter-spacing:-0.3px; white-space:nowrap; }
  .logo-sub { font-size:10.5px; color:#9b9b94; line-height:1.25; }
  .nav-section { font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:#a3a39c; padding:14px 10px 6px; }
  .nav-item { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; font-size:13.5px; color:#4b4b45; cursor:pointer; margin-bottom:2px; }
  .nav-item.active { background:#efedff; color:#5245d6; font-weight:600; }
  .nav-item .ico { width:18px; text-align:center; }
  .nav-badge { margin-left:auto; background:#ff6b6b; color:#fff; font-size:10.5px; font-weight:700; border-radius:10px; padding:1px 7px; }
  .sidebar-user { margin-top:auto; display:flex; align-items:center; gap:10px; padding:10px; border-radius:10px; background:#f8f8f6; border:1px solid #ebebe8; }
  .ava { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:13px; flex-shrink:0; }
  .sidebar-user .name { font-size:13px; font-weight:600; }
  .sidebar-user .role { font-size:11px; color:#9b9b94; }

  .main { flex:1; overflow:hidden; padding:24px 28px; display:flex; flex-direction:column; }
  .topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
  .topbar h1 { font-size:21px; letter-spacing:-0.3px; display:flex; align-items:center; gap:10px; }
  .proj-chip { font-size:12px; background:#fff; border:1px solid #e6e6e2; border-radius:8px; padding:5px 12px; color:#6b6b64; font-weight:500; }
  .topbar-right { display:flex; align-items:center; gap:10px; }
  .avatars { display:flex; }
  .avatars .ava { width:30px; height:30px; font-size:11px; border:2px solid #f6f6f4; margin-left:-8px; }
  .btn { font-size:13px; font-weight:600; border-radius:9px; padding:8px 14px; cursor:pointer; border:1px solid #e6e6e2; background:#fff; color:#4b4b45; }
  .btn.primary { background:#6d5ef7; border-color:#6d5ef7; color:#fff; }

  .filters { display:flex; gap:8px; margin-bottom:16px; }
  .filter { font-size:12.5px; padding:6px 13px; border-radius:8px; background:#fff; border:1px solid #e6e6e2; color:#6b6b64; cursor:pointer; text-decoration:none; }
  .filter.on { background:#efedff; border-color:#cdc6ff; color:#5245d6; font-weight:600; }

  .board { display:flex; gap:16px; flex:1; overflow:hidden; }
  .col { flex:1; min-width:0; min-height:240px; display:flex; flex-direction:column; padding:8px 6px 10px; border-radius:16px; }
  .col-head { display:flex; align-items:center; gap:8px; padding:0 4px 12px; }
  .col-dot { width:9px; height:9px; border-radius:50%; }
  .col-name { font-size:13px; font-weight:700; }
  .col-count { font-size:11.5px; color:#a3a39c; background:#ececе9; background:#ececea; border-radius:8px; padding:1px 8px; font-weight:600; }
  .col-body { flex:1; display:flex; flex-direction:column; gap:10px; overflow:hidden; }

  .tcard { background:#fff; border:1px solid #ebebe8; border-radius:12px; padding:13px 14px; box-shadow:0 1px 2px rgba(0,0,0,.03); overflow:hidden; min-width:0; max-width:100%; }
  .tcard.bot-new { border:1.5px dashed #b3a7ff; background:#fbfaff; }
  [data-task-id] { cursor:grab; }
  .tcard { position:relative; }
  .tcard-handle {
    display:flex; align-items:center; justify-content:center;
    width:100%; height:18px; margin:-4px 0 6px; padding:0;
    border:0; background:transparent; cursor:grab; touch-action:manipulation;
    color:#c5c5be;
  }
  .tcard-handle span {
    display:block; width:28px; height:8px;
    background-image:radial-gradient(circle, #c5c5be 1.3px, transparent 1.4px);
    background-size:8px 8px; background-position:0 0;
  }
  .tcard-handle:active { cursor:grabbing; }
  .tcard.dragging { opacity:.45; }
  .tcard-ghost {
    position:fixed; z-index:240; pointer-events:none; margin:0;
    box-shadow:0 12px 28px rgba(31,31,28,.16); opacity:.96;
    will-change:transform;
  }
  .board-hint { display:none; }
  body.kanban-dragging { user-select:none; -webkit-user-select:none; cursor:grabbing; }
  body.kanban-dragging .board { touch-action:none; scroll-snap-type:none; }
  .col-body { min-height:220px; }
  .col-drop { flex:1 1 auto; min-height:180px; pointer-events:auto; }
  .col.drag-over { background:#f6f4ff; box-shadow:inset 0 0 0 2px #8f7bff; }
  .col-body.drag-over { outline:none; background:transparent; }
  .chips { display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap; }
  .chip { font-size:10px; font-weight:700; padding:3px 8px; border-radius:6px; }
  .chip.video { background:#fff0f0; color:#d6455e; }
  .chip.quick { background:#e9f9ee; color:#2b9348; }
  .chip.dev { background:#eaf3ff; color:#1c7ed6; }
  .chip.design { background:#fff4e6; color:#e8720c; }
  .chip.complex { background:#f3f0ff; color:#6d5ef7; }
  .chip.tg { background:#e7f5ff; color:#1c7ed6; }
  .chip.prio-high { background:#ffe9e9; color:#e03131; }
  .chip.prio-mid { background:#fff8e1; color:#b8860b; }
  .tcard h4 { font-size:13.5px; font-weight:600; line-height:1.35; overflow-wrap:anywhere; word-break:break-word; }
  .tcard p { font-size:12px; color:#8b8b84; margin-top:5px; margin-bottom:2px; line-height:1.4; overflow-wrap:anywhere; word-break:break-word; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; overflow:hidden; }
  .progress { height:5px; background:#f0f0ed; border-radius:4px; margin-top:10px; overflow:hidden; }
  .progress i { display:block; height:100%; background:#6d5ef7; border-radius:4px; }
  .check-info { font-size:11px; color:#8b8b84; margin-top:5px; }
  .tfoot { display:flex; align-items:center; justify-content:space-between; margin-top:12px; gap:10px; min-width:0; }
  .tfoot .ava { width:24px; height:24px; font-size:9.5px; flex-shrink:0; }
  .due { font-size:11px; color:#a3a39c; min-width:0; overflow-wrap:anywhere; }
  .due.warn { color:#e03131; font-weight:600; }
  .bot-line { display:flex; align-items:flex-start; gap:7px; background:#f3f0ff; border-radius:8px; padding:8px 10px; margin-top:9px; font-size:11.5px; color:#5245d6; line-height:1.4; overflow-wrap:anywhere; word-break:break-word; min-width:0; }
  .bot-actions { display:flex; gap:7px; margin-top:10px; }
  .bot-line[hidden], .bot-actions[hidden] { display:none; }
  .mini-btn { font-size:11.5px; font-weight:600; border-radius:7px; padding:5px 11px; cursor:pointer; border:1px solid #cdc6ff; background:#fff; color:#5245d6; }
  .mini-btn.fill { background:#6d5ef7; color:#fff; border-color:#6d5ef7; }
  .mention { color:#1c7ed6; font-weight:600; }

/* from bot_training.html */

  * { margin:0; padding:0; box-sizing:border-box; font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif; }
  body { background:#f6f6f4; color:#1f1f1c; display:flex; height:960px; overflow:hidden; }

  .sidebar { width:240px; background:#ffffff; border-right:1px solid #ebebe8; display:flex; flex-direction:column; padding:20px 12px; flex-shrink:0; }
  .logo { display:flex; align-items:center; gap:10px; padding:4px 10px 20px; }
  .logo-mark { width:32px; height:32px; border-radius:8px; background:linear-gradient(135deg,#6d5ef7,#9b8cff); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:11px; letter-spacing:0.2px; }
  .logo-name { font-weight:700; font-size:14px; letter-spacing:-0.3px; white-space:nowrap; }
  .logo-sub { font-size:10.5px; color:#9b9b94; line-height:1.25; }
  .nav-section { font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:#a3a39c; padding:14px 10px 6px; }
  .nav-item { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; font-size:13.5px; color:#4b4b45; cursor:pointer; margin-bottom:2px; }
  .nav-item.active { background:#efedff; color:#5245d6; font-weight:600; }
  .nav-item .ico { width:18px; text-align:center; }
  .nav-badge { margin-left:auto; background:#ff6b6b; color:#fff; font-size:10.5px; font-weight:700; border-radius:10px; padding:1px 7px; }
  .sidebar-user { margin-top:auto; display:flex; align-items:center; gap:10px; padding:10px; border-radius:10px; background:#f8f8f6; border:1px solid #ebebe8; }
  .ava { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:13px; flex-shrink:0; }
  .sidebar-user .name { font-size:13px; font-weight:600; }
  .sidebar-user .role { font-size:11px; color:#9b9b94; }
  .owner-tag { font-size:9.5px; background:#fff4e6; color:#e8720c; font-weight:700; border-radius:5px; padding:1px 6px; }

  .main { flex:1; overflow:hidden; padding:24px 30px; }
  .topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
  .topbar h1 { font-size:21px; letter-spacing:-0.3px; }
  .topbar p { font-size:12.5px; color:#8b8b84; margin-top:3px; }
  .lock { font-size:12px; background:#fff4e6; border:1px solid #f5e3ad; color:#b8860b; font-weight:600; border-radius:9px; padding:8px 13px; }

  .stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:18px; }
  .stat { background:#fff; border:1px solid #ebebe8; border-radius:13px; padding:14px 16px; }
  .stat .label { font-size:12px; color:#8b8b84; }
  .stat .value { font-size:24px; font-weight:800; margin-top:4px; letter-spacing:-0.4px; }
  .stat .sub { font-size:11px; margin-top:3px; color:#8b8b84; }
  .up { color:#2b9348; font-weight:600; }

  .cols { display:grid; grid-template-columns:1.55fr 1fr; gap:16px; }
  .card { background:#fff; border:1px solid #ebebe8; border-radius:14px; padding:16px 18px; }
  .card h3 { font-size:14px; margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; }
  .card h3 span { font-size:11.5px; color:#9b9b94; font-weight:500; }

  .cand { border:1px solid #efefec; border-radius:11px; padding:12px 14px; margin-bottom:10px; }
  .cand-top { display:flex; align-items:center; gap:8px; margin-bottom:7px; }
  .src { font-size:10.5px; font-weight:700; color:#e8720c; background:#fff4e6; border-radius:6px; padding:2px 8px; }
  .src.blue { color:#1c7ed6; background:#e7f5ff; }
  .conf { font-size:10.5px; font-weight:700; border-radius:6px; padding:2px 8px; }
  .conf.hi { background:#e9f9ee; color:#2b9348; }
  .conf.mid { background:#fff4e6; color:#e8720c; }
  .conf.low { background:#ffefef; color:#e03131; }
  .cand-time { margin-left:auto; font-size:10.5px; color:#a3a39c; }
  .cand-quote { font-size:12.5px; color:#4b4b45; line-height:1.45; border-left:3px solid #ddd6ff; padding-left:10px; font-style:italic; overflow-wrap:anywhere; word-break:break-word; }
  .cand-parsed { font-size:11.5px; color:#5245d6; margin-top:7px; }
  .cand-btns { display:flex; gap:7px; margin-top:10px; }
  .cb { font-size:11.5px; font-weight:700; border-radius:8px; padding:6px 12px; cursor:pointer; border:1px solid transparent; }
  .cb.ok { background:#2b9348; color:#fff; }
  .cb.no { background:#fff; color:#e03131; border-color:#ffd0d0; }
  .cb.edit { background:#fff; color:#5245d6; border-color:#d8d2ff; }

  .chat-row { display:flex; align-items:center; gap:10px; padding:10px 2px; border-bottom:1px solid #f2f2ef; }
  .chat-row:last-child { border-bottom:none; }
  .chat-name { font-size:13px; font-weight:600; flex:1; }
  .chat-name small { display:block; font-weight:400; font-size:11px; color:#9b9b94; margin-top:1px; }
  .mode { font-size:10.5px; font-weight:700; border-radius:7px; padding:4px 10px; }
  .mode.train { background:#fff4e6; color:#e8720c; }
  .mode.semi { background:#e7f5ff; color:#1c7ed6; }
  .mode.auto { background:#e9f9ee; color:#2b9348; }
  .mode.off { background:#f4f4f2; color:#9b9b94; }

  .thr { margin-top:14px; padding-top:14px; border-top:1px solid #f0f0ed; }
  .thr-label { font-size:12px; color:#4b4b45; font-weight:600; display:flex; justify-content:space-between; margin-bottom:8px; }
  .thr-label b { color:#6d5ef7; }
  .slider { height:6px; border-radius:5px; background:linear-gradient(90deg,#ffdada 0 40%, #ffe9c7 40% 75%, #cdeed6 75% 100%); position:relative; }
  .knob { position:absolute; top:-5px; left:75%; width:16px; height:16px; background:#6d5ef7; border:3px solid #fff; border-radius:50%; box-shadow:0 1px 4px rgba(0,0,0,.25); }
  .thr-hint { font-size:10.5px; color:#9b9b94; margin-top:8px; line-height:1.5; }

  .guard { margin-top:14px; background:#fff8f8; border:1px solid #ffe0e0; border-radius:10px; padding:11px 13px; font-size:11.5px; color:#a63030; line-height:1.5; }
  .err-banner { background:#ffefef; border:1px solid #ffd0d0; color:#a63030; border-radius:9px; padding:8px 10px; font-size:12px; margin-bottom:12px; }
  .chat-add { margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid #f0f0ed; }
  .chat-add-lead { font-size:12px; color:#6b6b64; line-height:1.45; margin-bottom:10px; }
  .chat-add label { display:block; font-size:11px; color:#8b8b84; margin:0 0 4px; }
  .chat-add .opt { color:#b5b5ae; }
  .chat-add input, .chat-add select {
    width:100%; font-size:12.5px; padding:7px 9px; border:1px solid #e4e4e0;
    border-radius:8px; background:#fff; margin-bottom:8px; color:#1f1f1c;
  }
  .chat-add input:focus, .chat-add select:focus { outline:none; border-color:#6d5ef7; }
  .chat-id { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
  form.inline.chat-name-form { display:flex; gap:6px; align-items:center; }
  .chat-name-form input {
    width:120px; font-size:12px; padding:4px 6px; border:1px solid #e4e4e0;
    border-radius:7px; background:#fff; color:#1f1f1c;
  }
  .chat-name-form input:focus { outline:none; border-color:#6d5ef7; }

/* from task_card.html */

  * { margin:0; padding:0; box-sizing:border-box; font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif; }
  body { background:#8f8f88; height:1100px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
  .backdrop { position:fixed; inset:0; background:rgba(24,24,20,.45); backdrop-filter:blur(2px); }

  .modal { position:relative; width:980px; max-height:1050px; background:#fff; border-radius:18px; box-shadow:0 24px 80px rgba(0,0,0,.35); display:flex; overflow:hidden; }
  .m-left { flex:1.55; padding:28px 30px; overflow:hidden; }
  .m-right { flex:1; background:#fafaf8; border-left:1px solid #ebebe8; padding:24px 22px; overflow:hidden; }

  .crumbs { font-size:12px; color:#a3a39c; margin-bottom:14px; }
  .crumbs b { color:#6b6b64; }
  .chips { display:flex; gap:7px; margin-bottom:12px; }
  .chip { font-size:11px; font-weight:700; padding:4px 10px; border-radius:7px; }
  .chip.tg { background:#e7f5ff; color:#1c7ed6; }
  .chip.video { background:#fff0f0; color:#d6455e; }
  .chip.prio { background:#ffe9e9; color:#e03131; }
  .chip.type { background:#f3f0ff; color:#6d5ef7; border:1px dashed #cdc6ff; cursor:pointer; }

  h1 { font-size:22px; letter-spacing:-0.3px; line-height:1.3; color:#1f1f1c; }

  .props { display:grid; grid-template-columns:130px 1fr; row-gap:11px; margin:18px 0; font-size:13px; }
  .p-label { color:#9b9b94; display:flex; align-items:center; gap:7px; }
  .p-val { color:#2b2b27; font-weight:500; display:flex; align-items:center; gap:8px; }
  .ava { width:24px; height:24px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:9.5px; }
  .status-pill { background:#e7f0ff; color:#1c7ed6; font-weight:700; font-size:12px; padding:4px 12px; border-radius:8px; }
  .due-warn { color:#e03131; font-weight:600; }

  .sec-title { font-size:13px; font-weight:700; color:#4b4b45; margin:20px 0 10px; display:flex; align-items:center; gap:8px; }
  .desc { font-size:13.5px; color:#4b4b45; line-height:1.55; background:#fafaf8; border:1px solid #f0f0ed; border-radius:10px; padding:12px 14px; }
  .desc .q { color:#8b8b84; font-style:italic; }
  .desc-body { white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }

  .check { display:flex; align-items:center; gap:10px; padding:7px 2px; font-size:13.5px; color:#2b2b27; }
  .cbx { width:17px; height:17px; border-radius:5px; border:1.5px solid #d4d4cf; flex-shrink:0; }
  .cbx.on { background:#6d5ef7; border-color:#6d5ef7; position:relative; }
  .cbx.on::after { content:"✓"; color:#fff; font-size:11px; position:absolute; top:0; left:3px; }
  .check.done span { color:#b5b5ae; text-decoration:line-through; }
  .check-progress { font-size:11.5px; color:#8b8b84; font-weight:600; margin-left:auto; }

  /* AI panel */
  .ai-panel { background:linear-gradient(180deg,#f6f4ff,#fbfaff); border:1px solid #ddd6ff; border-radius:14px; padding:16px; margin-top:6px; }
  .ai-head { display:flex; align-items:center; gap:9px; margin-bottom:11px; }
  .ai-avatar { width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,#6d5ef7,#9b8cff); display:flex; align-items:center; justify-content:center; font-size:15px; }
  .ai-head b { font-size:13.5px; color:#3d33a8; }
  .ai-head span { font-size:11px; color:#9b8cff; }
  .ai-item { display:flex; gap:9px; font-size:12.5px; color:#4b4470; line-height:1.5; padding:6px 0; }
  .ai-item .ic { flex-shrink:0; }
  .ai-tool { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid #e3ddff; border-radius:10px; padding:10px 12px; margin-top:8px; }
  .ai-tool .t-ico { width:34px; height:34px; border-radius:9px; background:#efedff; display:flex; align-items:center; justify-content:center; font-size:16px; }
  .ai-tool .t-name { font-size:12.5px; font-weight:700; color:#2b2b27; }
  .ai-tool .t-desc { font-size:11px; color:#9b9b94; }
  .ai-tool .t-btn { margin-left:auto; font-size:11.5px; font-weight:700; background:#6d5ef7; color:#fff; border:none; border-radius:8px; padding:7px 13px; cursor:pointer; }
  .ai-actions { display:flex; gap:8px; margin-top:12px; }
  .ai-btn { font-size:12px; font-weight:600; border-radius:8px; padding:7px 13px; cursor:pointer; border:1px solid #cdc6ff; background:#fff; color:#5245d6; }

  /* right column: activity */
  .r-title { font-size:13px; font-weight:700; color:#4b4b45; margin-bottom:14px; }
  .act { display:flex; gap:10px; padding:9px 0; border-bottom:1px solid #f0f0ed; }
  .act:last-of-type { border-bottom:none; }
  .act .a-ico { width:28px; height:28px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:12px; }
  .act .a-body { font-size:12px; color:#4b4b45; line-height:1.45; }
  .act .a-body b { color:#1f1f1c; }
  .act .a-time { font-size:10.5px; color:#b0b0a9; margin-top:3px; }
  .tg-msg { background:#e7f5ff; border-radius:0 10px 10px 10px; padding:9px 11px; font-size:12px; color:#25445c; margin-top:6px; line-height:1.45; }
  .tg-msg .voice { display:flex; align-items:center; gap:7px; color:#1c7ed6; font-weight:600; margin-bottom:5px; font-size:11.5px; }
  .comment-box { margin-top:14px; background:#fff; border:1px solid #e6e6e2; border-radius:10px; padding:10px 12px; font-size:12.5px; color:#a3a39c; }

/* runtime overrides */
:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --nav-h: 64px;
  --brand-bg: #f6f6f4;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  height: 100%;
}
html, body.app { min-height:100vh; min-height:100dvh; height:auto; overflow:auto; }
body.app {
  display:flex;
  background:var(--brand-bg);
  align-items:stretch;
  justify-content:flex-start;
}
a { color:inherit; text-decoration:none; }
button, .mini-btn, .cb, .btn, .t-btn { font-family:inherit; touch-action:manipulation; }
.main { overflow:auto; }
.col-body { overflow:auto; }
.board { overflow:auto; min-height:520px; }
.nav-item { text-decoration:none; }
.tcard-wrap { display:block; touch-action:pan-x pan-y; min-width:0; max-width:100%; }
.tcard-main { display:block; color:inherit; text-decoration:none; min-width:0; overflow:hidden; }

body.login { display:block; min-height:100vh; min-height:100dvh; height:auto; overflow:auto; }
.login-wrap {
  min-height:100vh; min-height:100dvh;
  display:flex; align-items:center; justify-content:center; background:var(--brand-bg);
  padding:max(24px, var(--safe-top)) max(16px, var(--safe-right)) max(24px, var(--safe-bottom)) max(16px, var(--safe-left));
}
.login-card { width:100%; max-width:380px; background:#fff; border:1px solid #ebebe8; border-radius:18px; padding:36px 32px; box-shadow:0 12px 32px rgba(31,31,28,0.06); }
.login-card h1 { font-size:22px; letter-spacing:-0.3px; margin:20px 0 6px; }
.login-card p { font-size:13px; color:#8b8b84; margin-bottom:24px; }
.login-card label { display:block; font-size:12px; font-weight:600; color:#6b6b64; margin-bottom:6px; }
.login-card input { width:100%; border:1px solid #e6e6e2; border-radius:9px; padding:11px 12px; font-size:16px; margin-bottom:16px; background:#fff; color:#1f1f1c; transition:border-color .15s ease, box-shadow .15s ease; }
.login-card input:focus { outline:none; border-color:#6d5ef7; box-shadow:0 0 0 3px rgba(109,94,247,0.14); }
.login-card .btn { width:100%; text-align:center; display:block; padding:12px 14px; font-size:16px; margin-top:4px; transition:background .15s ease; min-height:44px; }
.login-card .btn.primary:hover { background:#5b4ce6; border-color:#5b4ce6; }
.err { background:#ffefef; color:#e03131; font-size:13px; padding:8px 10px; border-radius:8px; margin-bottom:14px; }
.msg-ok { background:#e9f7ee; color:#2b9348; font-size:13px; padding:8px 10px; border-radius:8px; margin-bottom:14px; }
.password-wrap { display:flex; justify-content:center; padding-top:24px; }
.tcard-link, .tcard-main { display:block; color:inherit; }
.tcard-link:hover .tcard, .tcard-wrap:hover .tcard { border-color:#cdc6ff; }
form.inline { display:inline; }
body.task-page { background:#8f8f88; display:flex; align-items:flex-start; justify-content:center; padding:40px 20px; min-height:100vh; min-height:100dvh; height:auto; overflow:auto; }
.modal { margin:auto; }
body.task-page .err-banner { margin:0 0 12px; }
.task-bar { display:none; }
.status-move { display:none; }
body.task-page .status-move { display:block; width:100%; }
body.task-page .status-move label { display:flex; align-items:center; gap:8px; width:100%; }
body.task-page .status-move span { display:none; }
body.task-page .status-move select {
  appearance:none; -webkit-appearance:none;
  font:inherit; font-size:13px; font-weight:700; color:#1c7ed6;
  background:#e7f0ff; border:1px solid #cfe0ff; border-radius:8px;
  padding:6px 28px 6px 12px; min-height:36px; max-width:100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231c7ed6' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
}

/* ---------- мобильная оболочка (скрыта на десктопе) ---------- */
.mobile-nav, .mobile-top, .drawer-backdrop { display:none; }
.menu-btn { display:none; }

/* ---------- мобильная адаптация ---------- */
@media (max-width: 860px) {
  body.app { flex-direction:column; overflow-x:hidden; }
  body.drawer-open { overflow:hidden; }

  .mobile-top {
    display:flex; align-items:center; gap:10px;
    position:sticky; top:0; z-index:90;
    background:#fff; border-bottom:1px solid #ebebe8;
    padding:calc(10px + var(--safe-top)) max(12px, var(--safe-right)) 10px max(12px, var(--safe-left));
    min-height:calc(52px + var(--safe-top));
  }
  .menu-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; min-height:44px; border:1px solid #e6e6e2;
    border-radius:10px; background:#fff; font-size:18px; color:#4b4b45; cursor:pointer;
  }
  .mobile-brand { display:flex; align-items:center; gap:8px; flex:1; min-width:0; font-weight:700; font-size:14px; }
  .mobile-brand .logo-mark { width:28px; height:28px; font-size:10px; }
  .mobile-user { display:flex; }
  .mobile-user .ava { width:36px; height:36px; }

  .drawer-backdrop {
    position:fixed; inset:0; z-index:70; background:rgba(24,24,20,.4);
  }
  body.drawer-open .drawer-backdrop { display:block; }

  .sidebar {
    display:flex; position:fixed; z-index:80;
    top:calc(52px + var(--safe-top)); left:0; bottom:0; width:min(280px, 86vw);
    transform:translateX(-105%); transition:transform .2s ease;
    padding:16px 12px calc(16px + var(--safe-bottom));
    box-shadow:none; border-right:1px solid #ebebe8;
  }
  body.drawer-open .sidebar { transform:translateX(0); box-shadow:16px 0 40px rgba(24,24,20,.18); }

  .mobile-nav {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:50;
    background:#fff; border-top:1px solid #e6e6e2;
    padding:6px 4px calc(6px + var(--safe-bottom));
    padding-left:max(4px, var(--safe-left));
    padding-right:max(4px, var(--safe-right));
  }
  .mnav-item {
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
    font-size:10.5px; color:#8b8b84; font-weight:600; padding:6px 0; border-radius:8px;
    position:relative; min-height:48px;
  }
  .mnav-item span { font-size:19px; line-height:1; }
  .mnav-item.active { color:#5245d6; background:#f7f6ff; }
  .mnav-badge {
    position:absolute; top:2px; right:calc(50% - 22px);
    background:#ff6b6b; color:#fff; font-size:9px; border-radius:8px; padding:0 5px;
  }

  .main {
    padding:16px max(14px, var(--safe-right)) calc(var(--nav-h) + 16px + var(--safe-bottom)) max(14px, var(--safe-left));
    overflow-x:hidden;
    min-width:0;
  }

  .topbar { flex-wrap:wrap; gap:10px; margin-bottom:14px; }
  .greeting h1, .topbar h1 { font-size:18px; }
  .search, .tg-status { display:none; }
  .topbar-right { gap:8px; flex-wrap:wrap; }
  .topbar .lock { font-size:10.5px; padding:6px 9px; }
  .topbar .btn, .topbar-right .btn { min-height:40px; }

  .grid, .stats { grid-template-columns:1fr 1fr; gap:10px; }
  .stats { margin-bottom:12px; }
  .stat { padding:12px 14px; }
  .stat .value { font-size:22px; }

  .row2, .cols { grid-template-columns:1fr; gap:12px; margin-top:12px; }
  .badges { flex-wrap:wrap; }
  .badge { flex:1 1 30%; min-width:96px; }
  .chart { height:110px; gap:8px; }
  .task-row { min-height:44px; flex-wrap:wrap; row-gap:6px; }
  .task-row .chip, .task-row .t-due { margin-left:29px; }

  /* канбан: колонки горизонтальной прокруткой (как в Notion) */
  .filters { overflow-x:auto; padding-bottom:4px; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; }
  .filter { white-space:nowrap; flex-shrink:0; min-height:36px; display:inline-flex; align-items:center; }
  .filter-form { flex-wrap:nowrap; }
  .filter-select { flex-shrink:0; min-height:36px; }
  .board {
    display:flex; flex-flow:row nowrap; align-items:stretch;
    gap:12px; width:100%; max-width:100%; min-width:0;
    min-height:calc(100dvh - 240px);
    overflow-x:auto; overflow-y:visible;
    scroll-snap-type:x proximity; scroll-padding-inline:14px;
    -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
    padding-bottom:8px;
  }
  .col {
    flex:0 0 min(82vw, 320px); width:min(82vw, 320px);
    max-width:320px; min-width:min(280px, 80vw);
    min-height:calc(100dvh - 240px);
    scroll-snap-align:start;
  }
  .col-body { overflow:visible; gap:12px; flex:1 1 auto; min-height:280px; }
  .col-drop { min-height:220px; }
  .tcard-wrap [data-task-id], .tcard-wrap { cursor:grab; }
  .board-hint {
    display:block; font-size:12px; color:#9b9b94; margin:-4px 0 10px; line-height:1.35;
  }
  .tcard-handle { height:36px; min-height:36px; margin:-6px 0 4px; }
  .bot-actions .mini-btn { min-height:40px; width:100%; }

  /* карточка задачи: одна колонка, во весь экран */
  body.task-page {
    display:block; padding:0;
    padding-bottom:calc(var(--nav-h) + var(--safe-bottom));
    background:var(--brand-bg);
  }
  .task-bar {
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    position:sticky; top:0; z-index:30;
    background:#fff; border-bottom:1px solid #ebebe8;
    margin:-18px -16px 16px; padding:calc(10px + var(--safe-top)) 12px 10px;
  }
  .task-bar .btn { min-height:40px; }
  .crumbs { display:none; }
  .modal { flex-direction:column; width:100%; max-height:none; border-radius:0; box-shadow:none; }
  .m-left { padding:18px 16px; }
  .m-right { border-left:none; border-top:1px solid #ebebe8; padding:18px 16px 24px; }
  .backdrop { display:none; }
  h1 { font-size:18px; }
  .props { grid-template-columns:100px 1fr; font-size:13px; row-gap:14px; }
  body.task-page .status-move select { min-height:40px; font-size:16px; width:100%; }
  .check-row { min-height:44px; }
  button.check { min-height:44px; padding:10px 2px; }
  .check-del { min-width:44px; min-height:44px; color:#8b8b84; }
  .check-add { flex-wrap:wrap; }
  .check-add input, .check-add .mini-btn { min-height:44px; font-size:16px; }
  .ai-tool { flex-wrap:wrap; }
  .ai-tool .t-btn { margin-left:0; width:100%; text-align:center; min-height:40px; display:flex; align-items:center; justify-content:center; }

  /* пароли / обучение: строки в столбик */
  .chat-row, .vault-row { flex-wrap:wrap; row-gap:8px; align-items:flex-start; }
  .chat-row .secret, .vault-row .secret { flex-basis:100%; order:5; min-width:0; word-break:break-all; }
  .chat-row .mini-btn, .vault-row .mini-btn { flex:1 1 calc(50% - 6px); text-align:center; min-height:40px; order:6; }
  .chat-name-form { flex-basis:100%; }
  .chat-name-form input { width:100%; min-height:40px; font-size:16px; }
  .chat-add input, .chat-add select { min-height:44px; font-size:16px; }
  .cand-top { flex-wrap:wrap; }
  .cand-btns { flex-wrap:wrap; }
  .cand-btns .cb, .cand-btns form { flex:1 1 45%; }
  .cand-btns .cb { width:100%; min-height:40px; }

  .login-card { width:100%; max-width:380px; margin:0; padding:24px 20px; }
  .password-wrap { padding:8px 0 12px; }
  .new-task-card { width:100%; max-width:100%; }

  button, .mini-btn, .cb, .btn, .mnav-item, .filter { min-height:40px; }
  .tcard h4 { font-size:14px; }
  input, select, textarea { font-size:16px; }
}

@media (max-width: 480px) {
  .grid, .stats { grid-template-columns:1fr; }
  .badge { flex:1 1 46%; }
  .props { grid-template-columns:1fr; row-gap:4px; }
  .p-label { padding-top:8px; }
}

@media (hover: none) {
  .nav-item:hover { background:transparent; }
  .nav-item.active:hover { background:#efedff; }
  .tcard-link:hover .tcard, .tcard-wrap:hover .tcard { border-color:#ebebe8; }
  .check-del { color:#8b8b84; }
  .login-card .btn.primary:hover { background:#6d5ef7; border-color:#6d5ef7; }
  .edit-hint { opacity:1; }
}

/* Wave 3: кабинет — форма, фильтры, чек-лист, комментарии */
.filters { flex-wrap:wrap; align-items:center; }
.filter-form { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.filter-select { display:flex; align-items:center; gap:6px; background:#fff; border:1px solid #e6e6e2; border-radius:8px; padding:4px 10px; font-size:12.5px; color:#6b6b64; }
.filter-select span { font-weight:600; white-space:nowrap; }
.filter-select select { border:none; background:transparent; color:#2b2b27; font:inherit; max-width:180px; }
.new-task-card { width:100%; max-width:440px; }
.new-task-card select { width:100%; border:1px solid #e6e6e2; border-radius:9px; padding:11px 12px; font-size:14px; margin-bottom:16px; background:#fff; color:#1f1f1c; }
.new-task-card select:focus { outline:none; border-color:#6d5ef7; box-shadow:0 0 0 3px rgba(109,94,247,0.14); }
.new-task-card .opt { font-weight:500; color:#a3a39c; }
.new-task-card .btn { text-decoration:none; text-align:center; }
body.task-page .m-left, body.task-page .m-right { overflow:auto; }
.check-row { display:flex; align-items:center; gap:6px; }
.check-row form { margin:0; }
.check-row form:first-child { flex:1; min-width:0; }
button.check {
  display:flex; align-items:center; gap:10px; width:100%;
  padding:7px 2px; font-size:13.5px; color:#2b2b27;
  background:none; border:none; text-align:left; cursor:pointer; min-height:auto;
}
button.check.done span:last-child { color:#b5b5ae; text-decoration:line-through; }
.check-del {
  border:none; background:transparent; color:#b0b0a9; cursor:pointer;
  font-size:13px; padding:4px 8px; border-radius:6px; min-height:auto;
}
.check-del:hover { background:#ffefef; color:#e03131; }
.check-add { display:flex; gap:8px; margin-top:10px; }
.check-add input {
  flex:1; border:1px solid #e6e6e2; border-radius:8px; padding:8px 10px; font-size:13px; background:#fff;
}
.check-add input:focus { outline:none; border-color:#6d5ef7; }
.empty-hint { font-size:13px; color:#8b8b84; margin-bottom:10px; }
.comment-text { white-space:pre-wrap; margin-top:4px; }
.comment-form { margin:12px 0 8px; }
.comment-form textarea {
  width:100%; border:1px solid #e6e6e2; border-radius:10px; padding:10px 12px;
  font:inherit; font-size:12.5px; color:#1f1f1c; resize:vertical; min-height:72px; background:#fff;
}
.comment-form textarea:focus { outline:none; border-color:#6d5ef7; box-shadow:0 0 0 3px rgba(109,94,247,0.14); }
.comment-form .mini-btn { margin-top:8px; }

.task-field-edit { margin:0; }
.task-field-edit > summary {
  list-style:none; cursor:pointer;
}
.task-field-edit > summary::-webkit-details-marker { display:none; }
.task-field-edit > summary::marker { content:none; }
.task-title-summary {
  display:flex; align-items:flex-start; gap:10px;
}
.task-title-summary h1 { flex:1; min-width:0; overflow-wrap:anywhere; word-break:break-word; }
.edit-hint {
  flex-shrink:0; margin-top:6px;
  font-size:11px; font-weight:600; color:#9b8cff;
  opacity:0; transition:opacity .15s ease;
}
.task-title-summary:hover .edit-hint,
.task-title-summary:focus-visible .edit-hint,
.task-field-edit:hover .edit-hint { opacity:1; }
.desc-edit > summary {
  min-height:44px; display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
}
.desc-edit > summary .desc-body,
.desc-edit > summary .desc-placeholder { flex:1; min-width:0; }
.desc-edit > summary .edit-hint { margin-top:2px; }
.desc-edit > summary:hover,
.desc-edit > summary:focus-visible { border-color:#cdc6ff; }
.desc-placeholder { color:#a3a39c; font-style:italic; }
.desc-quote { font-size:12.5px; color:#8b8b84; font-style:italic; margin-top:8px; line-height:1.45; }
.task-field-edit[open] > summary { display:none; }
.task-edit-form { margin-top:0; }
.task-edit-form input[type="text"],
.task-edit-form textarea {
  width:100%; border:1px solid #e6e6e2; border-radius:10px; padding:10px 12px;
  font:inherit; color:#1f1f1c; background:#fff;
}
.task-edit-form input[type="text"] {
  font-size:22px; font-weight:700; letter-spacing:-0.3px; line-height:1.3;
}
.task-edit-form textarea {
  font-size:13.5px; line-height:1.55; resize:vertical; min-height:120px;
}
.task-edit-form input[type="text"]:focus,
.task-edit-form textarea:focus {
  outline:none; border-color:#6d5ef7; box-shadow:0 0 0 3px rgba(109,94,247,0.14);
}
.task-edit-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.task-edit-actions .mini-btn {
  display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none; min-height:36px;
}

@media (max-width: 860px) {
  .topbar-right > .ava { display:none; }
  .filters { flex-wrap:nowrap; }
  .filter-form { flex-wrap:nowrap; }
  .filter-select select { font-size:16px; max-width:140px; }
  .new-task-card { max-width:100%; }
  .new-task-card select, .new-task-card input, .new-task-card textarea, .new-task-card .btn { font-size:16px; min-height:44px; }
  button.check { min-height:44px; padding:10px 2px; }
  .check-del { min-width:44px; min-height:44px; color:#8b8b84; }
  .check-add input, .comment-form textarea { font-size:16px; min-height:44px; }
  .comment-form .mini-btn { min-height:44px; width:100%; }
  .edit-hint { opacity:1; }
  .task-edit-form input[type="text"] { font-size:18px; min-height:44px; }
  .task-edit-form textarea { font-size:16px; min-height:132px; }
  .task-edit-actions .mini-btn { min-height:44px; flex:1; }
}

/* Хранилище паролей: проекты → доступы */
.vault-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.vault-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:14px; }
.vault-card {
  display:flex; align-items:center; gap:12px;
  background:#fff; border:1px solid #ebebe8; border-radius:14px;
  padding:16px 18px; color:inherit;
}
.vault-card:hover { border-color:#cdc6ff; }
.vault-card.unassigned { background:#fafaf8; }
.vault-card-ico {
  width:40px; height:40px; border-radius:12px;
  background:#efedff; display:flex; align-items:center; justify-content:center;
  font-size:18px; flex-shrink:0;
}
.vault-card.unassigned .vault-card-ico { background:#f0f0ed; }
.vault-card-body { flex:1; min-width:0; }
.vault-card-name { font-size:14.5px; font-weight:700; letter-spacing:-0.2px; }
.vault-card-body small { display:block; font-size:12px; color:#9b9b94; margin-top:3px; }
.vault-card-go { color:#b5b5ae; font-size:16px; }
.vault-slug { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; color:#8b8b84; }
.chip.owner-only { background:#fff4e6; color:#e8720c; font-size:10px; margin-left:6px; vertical-align:middle; }
.new-task-card textarea {
  width:100%; border:1px solid #e6e6e2; border-radius:9px; padding:11px 12px;
  font:inherit; font-size:14px; margin-bottom:16px; background:#fff; color:#1f1f1c; resize:vertical;
}
.new-task-card textarea:focus { outline:none; border-color:#6d5ef7; box-shadow:0 0 0 3px rgba(109,94,247,0.14); }
.vault-check {
  display:flex; align-items:flex-start; gap:10px;
  font-size:13px; font-weight:500; color:#4b4b45; margin:2px 0 16px;
}
.vault-check input { width:auto; margin-top:2px; accent-color:#6d5ef7; }

@media (max-width: 860px) {
  .vault-grid { grid-template-columns:1fr; gap:10px; }
  .vault-card { min-height:64px; padding:14px 14px; }
  .vault-actions { width:100%; }
  .vault-actions .btn { flex:1; text-align:center; }
}
