    :root{
      /* Xyronex – light, calm, authoritative */
      --bg:#f6f8fc;
      --panel:#ffffff;
      --panel2:#f2f5fb;
      --text:#162238;
      --muted:#5e6b85;
      --border:#d6dce8;
      --accent:#2fbf9f;
      --accent2:#2b6cb0;

      --bubbleUserBg:#e9f2ff;
      --bubbleUserBorder:#b9d6ff;
      --bubbleBotBg:#ffffff;
      --bubbleBotBorder:#d6dce8;

      --dangerBg:#fff1f1;
      --dangerBorder:#f4b4b4;

      /* Force light colour scheme — prevents iOS Safari dark-mode
         from overriding form element colours */
      color-scheme: light;
    }
    *{box-sizing:border-box}
    body{
      margin:0;
      font-family: 'Space Grotesk', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
      background:var(--bg);
      color:var(--text);
      height:100vh;
      display:flex;
    }

    body.dyslexia{
      --bg:#FDFAF3;
      --panel:#F5F2EB;
      --panel2:#EEF0E8;
      --text:#333333;
      --bubbleBotBg:#C8E6C8;
      --bubbleBotBorder:#9ECBA0;
      --bubbleUserBg:#FFE082;
      --bubbleUserBorder:#D4AA00;
      font-size:1.1em;
      line-height:1.6;
    }

    .sidebar{
      width:340px;
      max-width:90vw;
      background:linear-gradient(180deg,var(--panel),var(--panel2));
      border-right:1px solid var(--border);
      display:flex;
      flex-direction:column;
    }

    .brand{
      padding:16px 16px 12px 16px;
      border-bottom:1px solid var(--border);
      display:flex;
      gap:12px;
      align-items:center;
    }

    .mark{
      width:36px;height:36px;
      border-radius:12px;
      background: radial-gradient(circle at 30% 30%, #6ee7d4, var(--accent));
      display:flex;align-items:center;justify-content:center;
      color:#0b1b33;
      font-weight:800;
      letter-spacing:.5px;
      border:1px solid rgba(0,0,0,.06);
      box-shadow:0 6px 20px rgba(47,191,159,.22);
      user-select:none;
    }

    .brand h1{margin:0;font-size:18px;line-height:1.1}
    .brand .sub{margin-top:4px;font-size:12px;color:var(--muted)}
    .brand .stack{display:flex;flex-direction:column}

    .controls{
      padding:12px 16px;
      border-bottom:1px solid var(--border);
      display:grid;
      gap:10px;
    }

    select,button,input{
      border:1px solid var(--border);
      background:var(--panel);
      color:var(--text);
      border-radius:12px;
      padding:10px 12px;
      font-size:14px;
      outline:none;
    }

    select:focus,button:focus,input:focus,textarea:focus{
      border-color: rgba(47,191,159,.55);
      box-shadow:0 0 0 3px rgba(47,191,159,.18);
    }

    button{cursor:pointer}
    button.primary{
      border-color: rgba(47,191,159,.55);
      background: rgba(47,191,159,.10);
    }
    button.primary:hover{border-color: var(--accent)}
    button:hover{border-color: var(--accent)}

    .row{display:flex;gap:10px;align-items:center}
    .right{margin-left:auto;display:flex;gap:10px}

    .danger{
      background:var(--dangerBg);
      border-color:var(--dangerBorder);
    }
    .danger:hover{border-color:#ef4444}

    .muted{color:var(--muted);font-size:12px}

    .divider{height:1px;background:var(--border);margin:6px 0}

    .chatlist{padding:10px 10px 14px;overflow:auto;flex:1}
    .chatitem{
      padding:10px 12px;
      border:1px solid var(--border);
      border-radius:14px;
      margin:8px 6px;
      background:var(--panel);
      transition: transform .04s ease;
    }
    .chatitem:hover{border-color: rgba(47,191,159,.55)}
    .chatitem:active{transform: translateY(1px)}
    .chatitem.active{border-color: var(--accent); box-shadow:0 8px 22px rgba(22,34,56,.06)}
    .chatitem .title{font-size:14px}
    .chatitem .meta{font-size:12px;color:var(--muted);margin-top:4px}

    .main{flex:1;display:flex;flex-direction:column;min-width:0}
    .topbar{
      padding:14px 16px;
      border-bottom:1px solid var(--border);
      display:flex;
      gap:10px;
      align-items:center;
      background:rgba(255,255,255,.7);
      backdrop-filter: blur(6px);
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      border:1px solid var(--border);
      background:#fff;
      padding:6px 10px;
      border-radius:999px;
      font-size:12px;
      color:var(--muted);
    }

    .pill .dot{
      width:8px;height:8px;border-radius:999px;background:var(--accent);
      box-shadow:0 0 0 3px rgba(47,191,159,.18);
    }

    /* SA-T02b: Command Dashboard overlay */
    #commandDashboard{
      position:fixed;inset:0;z-index:2000;
      background:rgba(14,20,34,.72);
      display:flex;align-items:stretch;justify-content:flex-end;
    }
    #commandDashboard.hidden{display:none;}
    .cmd-panel{
      width:min(820px,100vw);
      background:var(--bg);
      display:flex;flex-direction:column;
      box-shadow:-8px 0 40px rgba(14,20,34,.24);
      overflow:hidden;
    }
    .cmd-topbar{
      display:flex;align-items:center;gap:10px;
      padding:14px 18px 12px;
      border-bottom:1px solid var(--border);
      background:var(--panel);
      flex-shrink:0;
    }
    .cmd-topbar h2{margin:0;font-size:16px;font-weight:700;flex:1;}
    .cmd-tabs{
      display:flex;gap:2px;
      padding:8px 14px 0;
      border-bottom:1px solid var(--border);
      background:var(--panel);
      flex-shrink:0;
    }
    .cmd-tab{
      padding:7px 16px;font-size:13px;font-weight:600;
      border:none;background:none;cursor:pointer;
      color:var(--muted);border-bottom:2px solid transparent;
      border-radius:6px 6px 0 0;
    }
    .cmd-tab.active{color:var(--accent2);border-bottom-color:var(--accent2);background:var(--bg);}
    .cmd-body{flex:1;overflow-y:auto;padding:18px;}
    .cmd-section{margin-bottom:22px;}
    .cmd-section h4{margin:0 0 10px;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
    .cmd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:14px;}
    .cmd-stat{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px 14px;}
    .cmd-stat .label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
    .cmd-stat .val{font-size:20px;font-weight:700;line-height:1.2;}
    .cmd-stat .sub{font-size:11px;color:var(--muted);margin-top:3px;}
    .cmd-gate-row{display:flex;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);}
    .cmd-gate-row:last-child{border-bottom:none;}
    .cmd-gate-label{flex:1;font-size:13px;}
    .cmd-gate-pill{font-size:11px;font-weight:600;padding:2px 10px;border-radius:999px;}
    .gate-blocked{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5;}
    .gate-ok{background:#e6f4ea;color:#15803d;border:1px solid #86efac;}
    .gate-unknown{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1;}
    .cmd-tenant-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
    .cmd-tenant-row:last-child{border-bottom:none;}
    .cmd-tenant-name{font-weight:600;min-width:80px;}
    .cmd-tenant-meta{color:var(--muted);font-size:12px;flex:1;}
    .cmd-bcs-row{padding:7px 0;border-bottom:1px solid var(--border);font-size:13px;}
    .cmd-bcs-row:last-child{border-bottom:none;}
    .cmd-bcs-title{font-weight:500;}
    .cmd-bcs-meta{font-size:11px;color:var(--muted);margin-top:2px;}
    .cmd-loading{color:var(--muted);font-size:13px;padding:20px 0;text-align:center;}
    .cmd-error{color:#b91c1c;font-size:13px;padding:8px 12px;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:12px;}
    /* Proposal styles — used inside Command Dashboard Proposals tab */
    .proposals-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
    .proposals-header h3{margin:0;font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.2px;}
    .proposal-badge{background:var(--accent);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 7px;line-height:1.6;}
    .proposals-filters{display:flex;gap:4px;margin-left:auto;}
    .filter-btn{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;}
    .filter-btn.active{background:var(--accent2);color:#fff;border-color:var(--accent2);}
    .proposals-list{display:flex;flex-direction:column;gap:8px;}
    .proposal-row{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:13px;}
    .proposal-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
    .proposal-tool{font-weight:600;}
    .proposal-ctx{color:var(--muted);font-size:12px;}
    .proposal-status{border-radius:999px;font-size:11px;font-weight:600;padding:2px 8px;margin-left:auto;}
    .proposal-status.pending{background:#fff8e1;color:#b45309;border:1px solid #fcd34d;}
    .proposal-status.approved{background:#e6f4ea;color:#15803d;border:1px solid #86efac;}
    .proposal-status.rejected{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5;}
    .proposal-status.executed{background:#ede9fe;color:#6d28d9;border:1px solid #c4b5fd;}
    .proposal-status.failed{background:var(--dangerBg);color:#c0392b;border:1px solid var(--dangerBorder);}
    .proposal-status.locked{opacity:.75;font-style:italic;}
    .proposal-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
    .proposal-actions button{font-size:12px;padding:5px 12px;border-radius:8px;}
    .proposal-detail{margin-top:10px;background:#f8f9fc;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;}
    .proposal-detail-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border);}
    .blast-tier{border-radius:6px;font-size:11px;font-weight:700;padding:3px 9px;text-transform:uppercase;letter-spacing:.4px;}
    .blast-tier.TRIVIAL{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7;}
    .blast-tier.LOW{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9;}
    .blast-tier.MEDIUM{background:#fff8e1;color:#e65100;border:1px solid #ffcc80;}
    .blast-tier.HIGH{background:#fce4ec;color:#b71c1c;border:1px solid #ef9a9a;}
    .structural-badge{background:#ede7f6;color:#4527a0;border:1px solid #b39ddb;border-radius:6px;font-size:11px;font-weight:600;padding:3px 8px;}
    .proposal-section{margin-top:8px;}
    .proposal-section-title{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
    .proposal-code{background:#1e1e2e;color:#cdd6f4;border-radius:6px;padding:10px 12px;font-family:monospace;font-size:11px;white-space:pre-wrap;max-height:300px;overflow-y:auto;border:1px solid #313244;}
    .proposal-diff-add{color:#a6e3a1;}
    .proposal-diff-del{color:#f38ba8;}
    .proposal-diff-hdr{color:#89b4fa;}
    .proposals-empty{color:var(--muted);font-size:13px;padding:6px 0;}
    .cmd-stat-label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
    .cmd-stat-val{font-size:20px;font-weight:700;line-height:1.2;}

    .thread{
      flex:1;
      overflow:auto;
      padding:18px 16px;
      display:flex;
      flex-direction:column;
      gap:12px;
    }

    .msg{max-width:980px;width:100%;display:flex}
    .msg.assistant{flex-direction:column;}
    .msg.user{justify-content:flex-end}

    .bubble{
      border:1px solid var(--border);
      border-radius:18px;
      padding:12px 14px;
      white-space:normal;
      line-height:1.35;
      box-shadow: 0 10px 30px rgba(22,34,56,.05);
      background:var(--bubbleBotBg);
      border-color:var(--bubbleBotBorder);
    }

    .msg.user .bubble{
      background:var(--bubbleUserBg);
      border-color:var(--bubbleUserBorder);
      white-space:pre-wrap;
    }

    /* Markdown rendered content inside assistant bubbles */
    .bubble p{margin:0 0 .6em}
    .bubble p:last-child{margin-bottom:0}
    .bubble ul,.bubble ol{margin:.3em 0 .6em 1.4em;padding:0}
    .bubble li{margin:.15em 0}
    .bubble h1,.bubble h2,.bubble h3,.bubble h4{margin:.6em 0 .3em;font-weight:600;line-height:1.3}
    .bubble h1{font-size:1.1em}
    .bubble h2{font-size:1.05em}
    .bubble h3,.bubble h4{font-size:1em}
    .bubble code{background:#eef1f7;border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.9em}
    .bubble pre{background:#eef1f7;border-radius:8px;padding:10px 12px;overflow-x:auto;margin:.4em 0}
    .bubble pre code{background:none;padding:0}
    .bubble .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:.4em 0;border-radius:4px}
    .bubble .table-scroll table{border-collapse:collapse;width:auto;min-width:100%;margin:0;font-size:.9em}
    .bubble th,.bubble td{border:1px solid var(--border);padding:5px 10px;text-align:left;white-space:nowrap}
    .bubble th{background:var(--panel2);font-weight:600}
    .bubble blockquote{border-left:3px solid var(--accent);margin:.4em 0;padding:.2em .8em;color:var(--muted)}
    .bubble a{color:var(--accent2)}
    .bubble hr{border:none;border-top:1px solid var(--border);margin:.6em 0}

    /* Column wrapper inside .msg row — holds bubble + action buttons so hover selectors work */
    .msg-col{display:flex;flex-direction:column;min-width:0;}

    /* Source provenance badges */
    .src-badge{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.72em;font-weight:500;padding:2px 8px;border-radius:10px;border:1px solid transparent;opacity:.85}
    .src-badge.vault{background:#e8f4ef;border-color:#a8d8c0;color:#1a6644}
    .src-badge.web{background:#e8eef8;border-color:#a8c0e8;color:#1a3a7a}
    .src-badge.both{background:#f0eaf8;border-color:#c0a8e0;color:#4a1a7a}
    .src-badge-row{display:flex;gap:6px;flex-wrap:wrap}

    .metaRow{margin-top:6px;font-size:12px;color:var(--muted)}

    .composer{
      border-top:1px solid var(--border);
      padding:12px 16px;
      display:grid;
      gap:10px;
      background:rgba(255,255,255,.65);
      backdrop-filter: blur(6px);
    }

    textarea{
      width:100%;
      min-height:54px;
      max-height:180px;
      resize:vertical;
      border:1px solid var(--border);
      background:var(--panel);
      color:var(--text);
      /* iOS Safari ignores color on form controls — must set -webkit-text-fill-color */
      -webkit-text-fill-color:var(--text);
      border-radius:16px;
      padding:12px;
      font-size:14px;
      outline:none;
    }

    .attach{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

    .thumb{
      border:1px solid var(--border);
      border-radius:14px;
      overflow:hidden;
      width:74px;height:74px;
      display:flex;align-items:center;justify-content:center;
      background:var(--panel);
      box-shadow: 0 10px 30px rgba(22,34,56,.05);
    }
    .thumb img{width:100%;height:100%;object-fit:cover}

    /* Small helper */
    .hidden{display:none !important;}

    /* Login overlay */
    .login-overlay{
      position:fixed;inset:0;
      background:var(--bg);
      display:flex;align-items:center;justify-content:center;
      overflow-y:auto;
      z-index:1000;
    }
    @media(max-width:480px){
      .login-overlay{align-items:flex-start;padding:24px 0 40px;}
    }
    .login-card{
      background:var(--panel);
      border:1px solid var(--border);
      border-radius:20px;
      padding:28px 32px;
      width:360px;max-width:92vw;
      box-shadow:0 20px 60px rgba(22,34,56,.12);
      display:flex;flex-direction:column;gap:14px;
    }
    .login-card label{display:flex;flex-direction:column;}
    .login-card input{width:100%;}
    .login-error{
      background:var(--dangerBg);
      border:1px solid var(--dangerBorder);
      border-radius:10px;
      padding:8px 12px;
      font-size:13px;color:#c0392b;
    }

    /* ---- Tenant Dashboard ---- */
    #tenantDashboard{
      position:fixed;inset:0;
      background:var(--bg);
      z-index:100;
      display:flex;flex-direction:column;
      overflow:hidden;
    }
    #tdOverview{display:flex;flex-direction:column;flex:1;overflow-y:auto;}
    #tdFolder{display:flex;flex-direction:column;flex:1;overflow:hidden;}

    .td-topbar{
      position:sticky;top:0;
      background:var(--panel);
      border-bottom:1px solid var(--border);
      padding:12px 16px;
      display:flex;align-items:center;gap:12px;
      z-index:10;
    }
    .td-greeting{font-size:20px;font-weight:700;line-height:1.1;}
    .td-subtitle{font-size:13px;color:var(--muted);margin-top:2px;}

    .td-folder-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:12px;
      padding:16px;
    }
    @media(min-width:600px){.td-folder-grid{grid-template-columns:repeat(3,1fr);}}
    .td-folder-card{
      background:var(--panel);
      border:2px solid var(--border);
      border-radius:18px;
      padding:16px 14px;
      cursor:pointer;
      transition:border-color .14s,box-shadow .14s;
      display:flex;flex-direction:column;gap:5px;
      -webkit-tap-highlight-color:transparent;
    }
    .td-folder-card:hover,.td-folder-card:active{
      border-color:var(--accent);
      box-shadow:0 4px 18px rgba(47,191,159,.15);
    }
    .td-folder-icon{font-size:28px;line-height:1;}
    .td-folder-name{font-weight:700;font-size:15px;margin-top:4px;}
    .td-folder-meta{font-size:12px;color:var(--muted);}
    .td-actions{display:flex;flex-direction:column;gap:10px;padding:0 16px 16px;}
    .td-actions button{width:100%;}
    .td-ref-lib{padding:0 16px 24px;}
    .td-ref-lib-header{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
    .td-ref-lib-title{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex:1;}
    .td-ref-lib-sub{font-size:11px;color:var(--muted);margin-bottom:10px;line-height:1.4;}
    .td-ref-lib-add-btn{font-size:12px;padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);cursor:pointer;white-space:nowrap;}
    .td-ref-lib-add-btn:hover{background:var(--hover);}
    .td-ref-lib-status{font-size:13px;color:var(--muted);padding:4px 0 8px;line-height:1.4;}
    .td-ref-lib-list{display:flex;flex-direction:column;gap:6px;}
    .td-ref-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);}
    .td-ref-item-name{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .td-ref-item-meta{font-size:11px;color:var(--muted);white-space:nowrap;}
    .td-ref-item-badge{font-size:11px;padding:2px 6px;border-radius:4px;white-space:nowrap;}
    .td-ref-item-badge.pending{background:#fff3cd;color:#856404;}
    .td-ref-item-badge.complete{background:#d1e7dd;color:#0a3622;}
    .td-ref-item-badge.failed{background:#f8d7da;color:#842029;}
    .td-ref-item-badge.processing{background:#cfe2ff;color:#084298;}
    .td-ref-item-del{font-size:13px;padding:2px 7px;border:none;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;flex-shrink:0;}
    .td-ref-item-del:hover{color:#c0392b;background:#fdf0f0;}
    .td-ref-lib-empty{font-size:13px;color:var(--muted);padding:10px 0;line-height:1.5;}
    .td-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:14px;}
    /* UX-T15: folder files subtitle + upload area label */
    .td-files-header{padding:12px 16px 4px;font-size:11px;color:var(--muted);line-height:1.4;}
    /* UX-T15: expandable "What's the difference?" */
    .doc-diff-toggle{font-size:12px;color:var(--accent2);background:none;border:none;cursor:pointer;padding:6px 0 0;display:block;text-align:left;}
    .doc-diff-panel{display:none;margin-top:8px;padding:10px 12px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text);line-height:1.6;}
    .doc-diff-panel.open{display:block;}
    /* UX-T15: first-use placement banner */
    .placement-banner{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;background:#eef6ff;border:1px solid #b9d6ff;border-radius:10px;font-size:13px;color:var(--text);line-height:1.5;margin:12px 16px 4px;}
    .placement-banner-text{flex:1;}
    .placement-banner-close{background:none;border:none;cursor:pointer;font-size:16px;color:var(--muted);padding:0;flex-shrink:0;line-height:1;}

    /* Settings panel (UX-T01) */
    #settingsPanel{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg);}
    #settingsPanel.hidden{display:none !important;}
    .settings-content{flex:1;overflow-y:auto;padding:24px 0;}
    .settings-section{max-width:560px;margin:0 auto 32px;padding:0 20px;}
    .settings-section-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border);}
    .settings-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
    .settings-label{font-size:13px;color:var(--muted);}
    .settings-input{width:100%;padding:8px 10px;font-size:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);box-sizing:border-box;}
    .settings-input:focus{outline:none;border-color:var(--accent);}
    .settings-btn{padding:8px 18px;font-size:13px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);margin-top:4px;}
    .settings-btn:hover{background:var(--hover);}
    .settings-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);}
    .settings-btn.primary:hover{opacity:.9;}
    .settings-btn.danger{background:transparent;color:#c0392b;border-color:#e3b9b9;}
    .settings-btn.danger:hover{background:#fdf0f0;}
    .settings-status{font-size:13px;min-height:18px;margin:6px 0;line-height:1.4;}
    .settings-status.ok{color:#0a7c4e;}
    .settings-status.err{color:#c0392b;}
    .settings-toggle-row{display:flex;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--border);}
    .settings-toggle-row:last-of-type{border-bottom:none;}
    .settings-toggle-row>div{flex:1;}
    .settings-toggle-label{font-size:14px;font-weight:500;}
    .settings-toggle-desc{font-size:12px;color:var(--muted);margin-top:2px;}
    .settings-toggle-btn{padding:5px 14px;font-size:12px;font-weight:600;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;flex-shrink:0;}
    .settings-toggle-btn[aria-checked="true"]{background:var(--accent);color:#fff;border-color:var(--accent);}
    .settings-meta{font-size:13px;color:var(--muted);margin-bottom:12px;}
    .settings-danger-zone .settings-section-title{color:#c0392b;}
    .settings-danger-desc{font-size:13px;color:var(--muted);margin-bottom:16px;line-height:1.5;}

    /* Workspace settings + platform admin panels (T03/T04) — reuse .settings-* */
    #tdWorkspaceSettings,#tdPlatformAdmin{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg);}
    #tdWorkspaceSettings.hidden,#tdPlatformAdmin.hidden{display:none !important;}
    .feat-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);}
    .feat-row:last-child{border-bottom:none;}
    .feat-row-info{flex:1;}
    .feat-row-title{font-size:14px;font-weight:500;}
    .feat-row-desc{font-size:12px;color:var(--muted);margin-top:2px;}
    .feat-row-locked{font-size:11px;color:var(--muted);font-style:italic;}
    .feat-lock-check{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);}

    /* Folder view */
    .td-folder-topbar{
      position:sticky;top:0;
      background:var(--panel);
      border-bottom:1px solid var(--border);
      padding:10px 14px;
      display:flex;align-items:center;gap:10px;
      z-index:10;flex-shrink:0;
    }
    .td-folder-title{flex:1;font-weight:700;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .td-tabs{
      display:flex;
      border-bottom:1px solid var(--border);
      background:var(--panel);
      flex-shrink:0;
    }
    .td-tab{
      flex:1;padding:11px 4px;font-size:14px;
      border:none;border-bottom:2px solid transparent;
      border-radius:0;background:transparent;
      color:var(--muted);cursor:pointer;
      transition:color .1s,border-color .1s;
    }
    .td-tab.active{color:var(--accent);border-bottom-color:var(--accent);}
    .td-tab-panel{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0;}

    /* Folder chat */
    .td-thread-bar{
      display:flex;gap:6px;align-items:center;
      padding:6px 10px;
      border-bottom:1px solid var(--border);
      overflow-x:auto;
      flex-shrink:0;
      background:var(--panel);
      scrollbar-width:none;
    }
    .td-thread-bar::-webkit-scrollbar{display:none;}
    .td-thread-pill{
      display:inline-flex;align-items:center;gap:5px;
      padding:4px 11px;
      border:1px solid var(--border);
      border-radius:999px;
      font-size:12px;
      background:var(--panel);
      cursor:pointer;
      white-space:nowrap;
      flex-shrink:0;
      transition:border-color .12s,background .12s;
      user-select:none;
    }
    .td-thread-pill:hover{border-color:var(--accent);}
    .td-thread-pill.active{
      border-color:var(--accent);
      background:rgba(47,191,159,.09);
      color:var(--accent);
    }
    .td-thread-pill-title{
      outline:none;
      max-width:160px;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .td-thread-pill-date{
      font-size:11px;
      color:var(--muted,#5e6b85);
      white-space:nowrap;
      flex-shrink:0;
    }
    .td-thread-pill-title[contenteditable="true"]{
      border-bottom:1px solid var(--accent);
      text-overflow:clip;
      min-width:60px;
      overflow:visible;
    }
    .td-new-thread-btn{
      padding:4px 10px;
      border:1px dashed var(--border);
      border-radius:999px;
      font-size:12px;
      background:transparent;
      cursor:pointer;
      white-space:nowrap;
      flex-shrink:0;
      color:var(--muted);
      transition:border-color .12s,color .12s;
    }
    .td-new-thread-btn:hover{border-color:var(--accent);color:var(--accent);}
    .td-thread{
      flex:1;overflow-y:auto;
      padding:12px 14px;
      display:flex;flex-direction:column;gap:10px;
      min-height:0;
    }
    .td-composer{
      border-top:1px solid var(--border);
      padding:10px 14px;
      display:flex;gap:8px;
      background:var(--panel);
      flex-shrink:0;
    }
    .td-composer textarea{flex:1;min-height:44px;max-height:120px;resize:vertical;}

    /* Notes list */
    .td-note-card{border-bottom:1px solid var(--border);padding:14px 16px;cursor:pointer;}
    .td-note-card:last-child{border-bottom:none;}
    .td-note-title{font-weight:600;font-size:14px;}
    .td-note-date{font-size:12px;color:var(--muted);margin-top:2px;}
    .td-note-preview{font-size:13px;color:var(--muted);margin-top:4px;}
    .td-note-full{font-size:14px;margin-top:8px;white-space:pre-wrap;line-height:1.5;}

    /* Files */
    .td-upload-bar{
      padding:12px 16px;border-bottom:1px solid var(--border);
      display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex-shrink:0;
    }
    .td-file-card{
      display:flex;align-items:center;gap:10px;
      padding:12px 16px;border-bottom:1px solid var(--border);
    }
    .td-file-icon{font-size:20px;flex-shrink:0;}
    .td-file-name{font-weight:500;font-size:14px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .td-file-meta{font-size:12px;color:var(--muted);}
    .td-notes-scroll,.td-files-scroll{flex:1;overflow-y:auto;min-height:0;}

    /* Dyslexia overrides — multi-zone colour scheme */
    body.dyslexia{background:#FDFAF3;}
    body.dyslexia *{color:#333333;}
    body.dyslexia .msg.user .bubble{background:#FFE082;}
    body.dyslexia .msg.assistant .bubble{background:#C8E6C8;}
    body.dyslexia textarea,body.dyslexia input[type=text],body.dyslexia input[type=email],body.dyslexia input[type=password]{background:#FFF8E7;}
    body.dyslexia .td-topbar,body.dyslexia .td-folder-topbar,
    body.dyslexia .td-tabs,body.dyslexia .td-composer,body.dyslexia .td-upload-bar,
    body.dyslexia .topbar,body.dyslexia .composer{background:#F5F2EB;}
    body.dyslexia #tenantDashboard{font-size:1.1em;line-height:1.6;}
    body.dyslexia .td-greeting{font-size:24px;}
    body.dyslexia .td-folder-name{font-size:17px;}
    body.dyslexia .td-tab{font-size:15px;padding:13px 4px;}
    body.dyslexia .td-note-card,body.dyslexia .td-file-card{padding:16px;}

    /* Save note */
    .flag-btn{
      font-size:12px;padding:3px 8px;
      border-radius:10px;
      border:1px solid var(--border);
      background:transparent;
      color:var(--muted);
      cursor:pointer;
      opacity:0;
      transition:background .1s,color .1s,opacity .2s;
      margin-left:4px;
    }
    .msg.assistant:hover .flag-btn{opacity:1;}
    .flag-btn:hover{background:#fff0f0;color:#c0392b;border-color:#e0a0a0;}
    .flag-btn.flagged{opacity:1;color:#c0392b;border-color:#e0a0a0;}
    .save-note-wrap{margin-top:2px;padding-left:2px;}
    .save-note-btn{
      font-size:12px;padding:3px 10px;
      border-radius:10px;
      border:1px solid var(--border);
      background:transparent;
      color:var(--muted);
      cursor:pointer;
      opacity:0;
      transition:background .1s,color .1s,opacity .2s;
    }
    .msg.assistant:hover .save-note-btn{opacity:1;}
    .save-note-btn:hover{background:var(--panel2);color:var(--text);}
    /* History messages */
    .history-msg{opacity:0.65;}
    /* Voice input mic button */
    .mic-btn,.icon-btn{
      background:transparent;border:1px solid var(--border);
      border-radius:10px;padding:3px 10px;cursor:pointer;
      font-size:16px;color:var(--muted);
      transition:background .1s,color .1s,box-shadow .1s;
    }
    .mic-btn:hover,.icon-btn:hover{background:var(--panel2);color:var(--text);}
    @keyframes micPulse{
      0%,100%{box-shadow:0 0 0 0 rgba(220,80,80,.4);}
      50%{box-shadow:0 0 0 6px rgba(220,80,80,.0);}
    }
    .mic-btn.listening{color:#dc5050;animation:micPulse 1s infinite;}
    .note-panel{
      margin-top:6px;
      padding:10px 12px;
      border:1px solid var(--border);
      border-radius:14px;
      background:var(--panel);
      display:flex;flex-direction:column;gap:8px;
      max-width:440px;
    }
    .note-panel-actions{display:flex;gap:8px;}
    .note-panel-actions button{flex:1;}
    .note-saved{font-size:12px;color:var(--accent);padding:2px 0;}
    @media(max-width:600px){.note-panel{max-width:96vw;}}

    /* Onboarding overlay */
    .ob-card{width:520px;max-width:96vw;max-height:92vh;overflow-y:auto;}
    @media(max-width:480px){.ob-card{padding:20px 16px;}}
    .ob-work-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
    }
    .ob-work-btn{
      display:flex;flex-direction:column;align-items:center;
      gap:6px;padding:14px 10px;
      border-radius:14px;
      border:2px solid var(--border);
      background:var(--panel2);
      cursor:pointer;font-size:13px;text-align:center;
      transition:border-color .12s;
    }
    .ob-work-btn:hover{border-color:var(--accent);}
    .ob-work-btn.selected{border-color:var(--accent);background:rgba(47,191,159,.1);}
    .ob-work-emoji{font-size:26px;line-height:1;}
    .ob-folder-item{
      display:flex;align-items:center;gap:8px;
      margin-bottom:8px;
    }
    @media(max-width:540px){
      .ob-work-grid{grid-template-columns:1fr;}
    }

    /* Hamburger — hidden on desktop */
    .hamburger{
      display:none;
      font-size:20px;
      padding:6px 10px;
      border-radius:10px;
      line-height:1;
      flex-shrink:0;
    }

    /* Sidebar backdrop */
    .sidebar-backdrop{
      display:none;
      position:fixed;inset:0;
      background:rgba(0,0,0,.28);
      z-index:199;
    }
    .sidebar-backdrop.open{display:block;}

    /* Mobile portrait */
    @media(max-width:768px){
      body{height:auto;min-height:100vh;}
      .hamburger{display:inline-flex;}
      .sidebar{
        position:fixed;
        top:0;left:0;bottom:0;
        z-index:200;
        width:300px;
        max-width:88vw;
        transform:translateX(-100%);
        transition:transform .22s ease;
      }
      .sidebar.open{
        transform:translateX(0);
        box-shadow:4px 0 28px rgba(22,34,56,.18);
      }
      .main{width:100%;}
      /* Fix 1+4: save-note and flag buttons always visible on touch (no hover state on mobile) */
      .save-note-btn,.flag-btn{opacity:1;}

      /* Fix 2: use dynamic viewport height so keyboard doesn't cover composer;
         add safe-area padding for iPhone home indicator */
      #tenantDashboard{
        height:100dvh;
        bottom:auto;
      }
      .td-composer{
        padding-bottom:max(10px, env(safe-area-inset-bottom));
      }

      /* Fix 3: minimum 44px touch targets on tenant dashboard */
      .td-tab{min-height:44px;padding:12px 4px;}
      .td-folder-topbar button,
      .td-composer button,
      .td-actions button,
      .td-upload-bar button{min-height:44px;}

      /* Fix 5: folder topbar — hide dyslexia button so 3-item layout fits on 375px
         (dyslexia mode is accessible from the overview topbar) */
      #tdDyslexiaBtnFolder{display:none;}

      /* Fix 6: overview topbar — compact dyslexia button to keep greeting legible */
      #tdDyslexiaBtnOverview{font-size:12px;padding:5px 8px;}

      /* Fix 7: admin topbar — hide verbose utility items on mobile */
      #clearThreadBtn{display:none;}
      #chatMeta{display:none;}

      /* Fix 8: admin composer safe-area inset (iPhone home indicator) */
      .composer{padding-bottom:max(12px, env(safe-area-inset-bottom));}
      .composer button{min-height:44px;}
    }

    /* UX-T09 — Thinking indicator */
    .thinking-bubble{
      border:1px solid var(--bubbleBotBorder);
      border-radius:18px;
      padding:10px 16px;
      background:var(--bubbleBotBg);
      box-shadow:0 10px 30px rgba(22,34,56,.05);
      display:flex;align-items:center;gap:10px;
      color:var(--muted);font-size:13px;
    }
    .thinking-dots{display:flex;gap:5px;align-items:center;}
    .thinking-dots span{
      width:6px;height:6px;border-radius:50%;
      background:var(--muted);display:inline-block;
      -webkit-animation:thinkPulse 1.2s ease-in-out infinite;
              animation:thinkPulse 1.2s ease-in-out infinite;
    }
    .thinking-dots span:nth-child(2){-webkit-animation-delay:.2s;animation-delay:.2s;}
    .thinking-dots span:nth-child(3){-webkit-animation-delay:.4s;animation-delay:.4s;}
    @-webkit-keyframes thinkPulse{
      0%,80%,100%{opacity:.25;-webkit-transform:scale(.75);transform:scale(.75);}
      40%        {opacity:1;  -webkit-transform:scale(1);   transform:scale(1);}
    }
    @keyframes thinkPulse{
      0%,80%,100%{opacity:.25;transform:scale(.75);}
      40%        {opacity:1;  transform:scale(1);}
    }
    .intent-label{font-size:11px;color:var(--muted);margin-top:2px;padding-left:2px;}
    /* PERSONA-T02: ambient chat background */
    #tdThread{--chat-ambient:transparent;background-color:var(--chat-ambient);transition:background-color 1.5s ease;}
    /* UX-T14: how this was answered footer */
    .how-answered{margin-top:6px;font-size:11px;}
    .how-answered-toggle{color:var(--muted);cursor:pointer;user-select:none;padding:2px 0;display:inline-block;}
    .how-answered-toggle:hover{color:var(--fg);}
    .how-answered-body{margin-top:4px;padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--muted);line-height:1.6;display:none;}
    .how-answered-body.open{display:block;}
    /* MEMORY-T03: People & Events */
    .td-people-section{max-width:740px;margin:0 auto 12px;padding:0 16px;}
    .td-people-hdr{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
    .td-people-hdr h3{margin:0;font-size:14px;font-weight:600;flex:1;cursor:pointer;user-select:none;color:var(--text);}
    .td-events-strip{background:rgba(47,191,159,.07);border:1px solid rgba(47,191,159,.22);border-radius:8px;padding:8px 12px;margin-bottom:8px;}
    .td-event-row{font-size:12px;color:var(--text);padding:2px 0;display:flex;gap:10px;}
    .td-event-label{color:var(--muted);min-width:68px;}
    .td-entity-grid{display:flex;flex-wrap:wrap;gap:8px;}
    .td-entity-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 12px;min-width:130px;max-width:190px;cursor:pointer;transition:border-color .15s;}
    .td-entity-card:hover{border-color:var(--accent);}
    .td-entity-name{font-size:13px;font-weight:600;margin-top:2px;}
    .td-entity-rel{font-size:11px;color:var(--muted);margin-top:1px;}
    .td-entity-add-card{background:transparent;border:1.5px dashed var(--border);border-radius:10px;padding:8px 12px;min-width:90px;cursor:pointer;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:4px;transition:border-color .15s,color .15s;}
    .td-entity-add-card:hover{border-color:var(--accent);color:var(--accent);}
    /* Entity modal */
    .em-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;}
    .em-box{background:var(--panel);border-radius:14px;padding:24px;width:100%;max-width:420px;box-shadow:0 8px 32px rgba(0,0,0,.18);max-height:90vh;overflow-y:auto;}
    .em-box h3{margin:0 0 16px;font-size:15px;}
    .em-row{margin-bottom:11px;}
    .em-row label{display:block;font-size:11px;color:var(--muted);margin-bottom:3px;}
    .em-row input,.em-row select,.em-row textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg);color:var(--text);}
    .em-row textarea{min-height:52px;resize:vertical;}
    .em-date-row{display:flex;gap:6px;margin-bottom:5px;align-items:center;}
    .em-date-row input{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:var(--bg);color:var(--text);}
    .em-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;}
    .em-del{margin-right:auto;background:none;border:none;color:#c0392b;cursor:pointer;font-size:12px;padding:0;}
    /* UX-T16: Add folder card + new folder modal */
    .td-folder-card-add{background:transparent;border:1.5px dashed var(--border);border-radius:12px;padding:16px 12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:12px;transition:border-color .15s,color .15s;min-height:90px;}
    .td-folder-card-add:hover{border-color:var(--accent);color:var(--accent);}
    .nfm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;}
    .nfm-box{background:var(--panel);border-radius:14px;padding:24px;width:100%;max-width:380px;box-shadow:0 8px 32px rgba(0,0,0,.18);}
    .nfm-box h3{margin:0 0 14px;font-size:15px;}
    .nfm-box input[type=text]{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--bg);color:var(--text);margin-bottom:12px;}
    .nfm-hints{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:12px;}
    .nfm-hints strong{display:block;margin-bottom:5px;color:var(--muted);}
    .nfm-hints ul{margin:0;padding-left:18px;line-height:1.7;}
    .nfm-actions{display:flex;gap:8px;justify-content:flex-end;}

    /* ================================================================
       UX-T17 — Messaging-style interface redesign
       ================================================================ */

    /* Tenant dashboard: two-column layout on desktop */
    #tenantDashboard{
      position:fixed;inset:0;
      background:var(--bg);
      z-index:100;
      display:flex;
      flex-direction:row;
      overflow:hidden;
    }

    /* ---- Sidebar ---- */
    #tdSidebar{
      width:280px;
      flex-shrink:0;
      background:var(--panel);
      border-right:1px solid var(--border);
      display:flex;
      flex-direction:column;
      overflow:hidden;
    }
    .tds-brand{
      padding:14px 16px 12px;
      border-bottom:1px solid var(--border);
      display:flex;
      align-items:center;
      gap:10px;
      flex-shrink:0;
    }
    .tds-tenant-name{
      font-size:15px;
      font-weight:700;
      flex:1;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .tds-atlas-btn{
      margin:10px 12px 0;
      width:calc(100% - 24px);
      padding:10px 14px;
      background:var(--accent);
      color:#fff;
      border:none;
      border-radius:12px;
      font-size:14px;
      font-weight:600;
      cursor:pointer;
      text-align:left;
      transition:opacity .12s;
      flex-shrink:0;
    }
    .tds-atlas-btn:hover{opacity:.88;}
    .tds-search-wrap{
      padding:10px 12px 6px;
      flex-shrink:0;
    }
    .tds-search{
      width:100%;
      padding:8px 12px;
      border:1px solid var(--border);
      border-radius:10px;
      font-size:13px;
      background:var(--panel2);
      color:var(--text);
      outline:none;
    }
    .tds-search:focus{border-color:rgba(47,191,159,.55);background:var(--panel);}

    /* Task strip */
    .tds-task-strip{
      display:flex;
      gap:6px;
      padding:4px 12px 6px;
      overflow-x:auto;
      flex-shrink:0;
      scrollbar-width:none;
    }
    .tds-task-strip::-webkit-scrollbar{display:none;}
    .tds-task-pill{
      display:inline-flex;
      align-items:center;
      gap:4px;
      padding:4px 10px;
      border:1px solid var(--border);
      border-radius:999px;
      font-size:11px;
      white-space:nowrap;
      cursor:pointer;
      flex-shrink:0;
      background:var(--panel);
      color:var(--muted);
    }
    .tds-task-pill:hover{border-color:var(--accent);color:var(--text);}
    .tds-task-pill.overdue{border-color:#ef4444;color:#ef4444;}

    /* Folder list */
    #tdFolderList{
      flex:1;
      overflow-y:auto;
      padding:4px 0 8px;
    }
    .tds-folder-row{
      display:flex;
      align-items:center;
      gap:10px;
      padding:9px 14px;
      cursor:pointer;
      transition:background .1s;
      border-radius:0;
      position:relative;
    }
    .tds-folder-row:hover{background:var(--panel2);}
    .tds-folder-row.active{background:rgba(47,191,159,.10);}
    .tds-folder-row.active::before{
      content:'';
      position:absolute;
      left:0;top:4px;bottom:4px;
      width:3px;
      background:var(--accent);
      border-radius:0 3px 3px 0;
    }
    .tds-priority-dot{
      width:8px;height:8px;
      border-radius:50%;
      flex-shrink:0;
    }
    .tds-priority-dot.today{background:#ef4444;}
    .tds-priority-dot.week{background:#f59e0b;}
    .tds-priority-dot.older{background:transparent;border:1px solid var(--border);}
    .tds-folder-info{flex:1;min-width:0;}
    .tds-folder-name{
      font-size:14px;
      font-weight:500;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      color:var(--text);
    }
    .tds-folder-name.unread{font-weight:700;}
    .tds-folder-time{
      font-size:11px;
      color:var(--muted);
      margin-top:1px;
    }
    .tds-unread-badge{
      background:var(--accent);
      color:#fff;
      border-radius:999px;
      font-size:11px;
      font-weight:700;
      min-width:18px;
      height:18px;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:0 5px;
      flex-shrink:0;
    }
    .tds-folder-add-row{
      display:flex;
      align-items:center;
      gap:10px;
      padding:8px 14px;
      cursor:pointer;
      color:var(--muted);
      font-size:13px;
      border-top:1px solid var(--border);
      margin-top:4px;
      transition:color .1s;
    }
    .tds-folder-add-row:hover{color:var(--accent);}

    /* Sidebar footer */
    .tds-footer{
      border-top:1px solid var(--border);
      padding:10px 14px;
      display:flex;
      align-items:center;
      gap:10px;
      flex-shrink:0;
    }
    .tds-avatar{
      width:32px;height:32px;
      border-radius:50%;
      background:var(--accent);
      color:#fff;
      font-size:13px;
      font-weight:700;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
      user-select:none;
    }
    .tds-footer-name{
      flex:1;
      font-size:13px;
      font-weight:500;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .tds-footer-btn{
      background:transparent;
      border:1px solid var(--border);
      border-radius:8px;
      padding:5px 8px;
      font-size:14px;
      cursor:pointer;
      color:var(--muted);
      flex-shrink:0;
      line-height:1;
    }
    .tds-footer-btn:hover{border-color:var(--accent);color:var(--text);}

    /* ---- Content area ---- */
    #tdContent{
      flex:1;
      display:flex;
      flex-direction:column;
      min-width:0;
      overflow:hidden;
    }
    .td-content-view{
      display:flex;
      flex-direction:column;
      flex:1;
      overflow:hidden;
      min-height:0;
    }
    .td-content-view.hidden{display:none !important;}

    /* ---- Home view ---- */
    #tdHome{
      overflow-y:auto;
      padding:0;
    }
    .tdh-header{
      padding:20px 24px 12px;
      border-bottom:1px solid var(--border);
      background:var(--panel);
      flex-shrink:0;
    }
    .tdh-greeting{font-size:20px;font-weight:700;line-height:1.1;}
    .tdh-subtitle{font-size:13px;color:var(--muted);margin-top:2px;}

    /* Personal Atlas chat area within Home */
    #tdPersonalChat{
      display:flex;
      flex-direction:column;
      flex:1;
      min-height:0;
      border-top:1px solid var(--border);
    }
    .tdh-personal-label{
      display:flex;
      align-items:center;
      gap:8px;
      padding:10px 16px 8px;
      font-size:12px;
      font-weight:600;
      color:var(--muted);
      letter-spacing:.04em;
      text-transform:uppercase;
      flex-shrink:0;
      border-bottom:1px solid var(--border);
    }
    .tdh-personal-label .personal-indicator{
      display:inline-flex;
      align-items:center;
      gap:4px;
      background:rgba(47,191,159,.08);
      border:1px solid rgba(47,191,159,.25);
      border-radius:20px;
      padding:2px 8px;
      font-size:11px;
      color:var(--accent);
      font-weight:600;
    }

    /* Ambient personal colour: subtle warm tint */
    #tdPersonalChat .td-thread{
      background:rgba(253,250,243,.55);
    }
    body.dyslexia #tdPersonalChat .td-thread{
      background:#FDFAF3;
    }

    /* Folder view: simplified header (sidebar handles navigation) */
    .td-folder-header{
      display:flex;
      align-items:center;
      gap:10px;
      padding:10px 14px;
      border-bottom:1px solid var(--border);
      background:var(--panel);
      flex-shrink:0;
    }
    .td-folder-header-title{
      flex:1;
      font-weight:700;
      font-size:17px;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }

    /* Workspace Atlas view */
    #tdWorkspaceAtlas{
      display:flex;
      flex-direction:column;
      flex:1;
      overflow:hidden;
      min-height:0;
    }
    .tdwa-header{
      padding:12px 16px;
      border-bottom:1px solid var(--border);
      background:var(--panel);
      flex-shrink:0;
      display:flex;
      align-items:center;
      gap:10px;
    }
    .tdwa-title{font-size:15px;font-weight:700;flex:1;}
    .tdwa-badge{
      font-size:11px;
      padding:2px 8px;
      border-radius:20px;
      background:rgba(47,191,159,.1);
      border:1px solid rgba(47,191,159,.3);
      color:var(--accent);
      font-weight:600;
    }

    /* ---- Mobile bottom nav ---- */
    #tdMobileNav{
      display:none;
      position:fixed;
      bottom:0;left:0;right:0;
      background:var(--panel);
      border-top:1px solid var(--border);
      z-index:201;
      padding-bottom:env(safe-area-inset-bottom);
    }
    .td-mobile-nav-inner{
      display:flex;
    }
    .td-nav-btn{
      flex:1;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:3px;
      padding:10px 4px 8px;
      background:transparent;
      border:none;
      font-size:10px;
      color:var(--muted);
      cursor:pointer;
      transition:color .1s;
      position:relative;
    }
    .td-nav-btn .nav-icon{font-size:20px;line-height:1;}
    .td-nav-btn.active{color:var(--accent);}
    .td-nav-btn .nav-badge{
      position:absolute;
      top:6px;
      right:calc(50% - 14px);
      background:var(--accent);
      color:#fff;
      border-radius:999px;
      font-size:9px;
      font-weight:700;
      min-width:14px;
      height:14px;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:0 3px;
    }

    /* Mobile responsive */
    @media(max-width:768px){
      /* Main layout: column on mobile (content above bottom nav).
         padding-bottom reserves space for the fixed nav bar so flex:1 children
         don't extend under it. box-sizing ensures 100dvh is the outer size. */
      #tenantDashboard{
        flex-direction:column;
        height:100dvh;
        padding-bottom:calc(56px + env(safe-area-inset-bottom));
        box-sizing:border-box;
      }
      /* Sidebar hidden by default on mobile; shown full-screen when Cases tab active */
      #tdSidebar{
        position:fixed;
        inset:0;
        bottom:calc(56px + env(safe-area-inset-bottom));
        width:100%;
        z-index:210;
        border-right:none;
        transform:translateX(-100%);
        transition:transform .22s ease;
      }
      #tdSidebar.mobile-open{
        transform:translateX(0);
      }
      #tdMobileNav{display:block;}
      /* Keep old topbar rules for dyslexia */
      body.dyslexia .td-folder-header{background:#F5F2EB;}
      body.dyslexia #tdSidebar{background:#F5F2EB;}
    }

    /* Dyslexia overrides for new elements */
    body.dyslexia #tdSidebar{background:#F5F2EB;}
    body.dyslexia .tds-atlas-btn{font-size:1.05em;}
    body.dyslexia .tds-folder-name{font-size:15px;}

/* UX-T14: Admin conversation history panel */
.admin-history-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px 6px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted, #8892a4);
  cursor: pointer;
  user-select: none;
  border-top: 1px solid var(--border, #e8ecf2);
  margin-top: 6px;
}
.admin-history-header:hover { color: var(--text, #1a2233); }
.admin-history-list { display: none; }
.admin-history-item {
  padding: 8px 14px;
  cursor: pointer;
  border-radius: 6px;
  margin: 2px 6px;
  transition: background 0.1s;
}
.admin-history-item:hover { background: var(--hover, #f0f2f7); }
.admin-history-title {
  font-size: 13px;
  color: var(--text, #1a2233);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.admin-history-meta {
  font-size: 11px;
  color: var(--muted, #8892a4);
  margin-top: 2px;
}
    body.dyslexia .tdh-greeting{font-size:24px;}

/* OPS-T03: IMS styles */
.ims-issue-row {
  border: 1px solid var(--border, #e8ecf2);
  border-radius: 6px;
  padding: 10px 12px;
  margin-bottom: 8px;
  background: var(--panel, #fff);
}
.ims-issue-header {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.ims-sev-badge {
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  border-radius: 3px;
  padding: 1px 5px;
  text-transform: uppercase;
  flex-shrink: 0;
}
.ims-type-tag {
  font-size: 11px;
  color: var(--muted, #8892a4);
  border: 1px solid var(--border, #e8ecf2);
  border-radius: 3px;
  padding: 1px 5px;
  flex-shrink: 0;
}
.ims-title {
  font-size: 13px;
  font-weight: 500;
  color: var(--text, #1a2233);
  flex: 1;
  min-width: 0;
}
.ims-tag {
  font-size: 11px;
  color: var(--accent, #2fbf9f);
  border: 1px solid var(--accent, #2fbf9f);
  border-radius: 3px;
  padding: 1px 5px;
}
.ims-meta {
  font-size: 11px;
  color: var(--muted, #8892a4);
  flex-shrink: 0;
}
.ims-desc {
  font-size: 12px;
  color: var(--muted, #8892a4);
  margin: 4px 0;
  white-space: pre-wrap;
  word-break: break-word;
}
.ims-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}
