:root{
    --bg-base:#eef1f4; --bg-panel:#ffffff; --bg-raised:#f7f9fb; --bg-hover:#eef2f5;
    --border:#dde3e9; --border-soft:#e8ecf0;
    --text-primary:#1f2933; --text-muted:#47535f; --text-dim:#6b7a8a;
    --amber:#27ae60; --amber-dim:#d7f3e3;
    --cyan:#3498db; --red:#e74c3c; --red-dim:#fdecea;
    --amber-text:#1e8449; --cyan-text:#21618c; --red-text:#c0392b;
    --radius:10px;
    --mono: 'JetBrains Mono', monospace;
    --display: 'Space Grotesk', sans-serif;
    --body: 'Inter', sans-serif;
  }
  *{box-sizing:border-box;}
  body{margin:0; background:var(--bg-base); color:var(--text-primary); font-family:var(--body); font-size:14px;}
  ::selection{background:#d5dbe1; color:var(--text-primary);}

  #loginGate{position:fixed; inset:0; background:radial-gradient(circle at 30% 20%, #1a2030, #0c0e13 70%); display:flex; align-items:center; justify-content:center; z-index:100;}
  .login-card{width:380px; background:var(--bg-panel); border:1px solid var(--border); border-radius:var(--radius); padding:32px;}
  .login-card .eyebrow{font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:var(--amber); text-transform:uppercase; margin-bottom:6px;}
  .login-card h1{font-family:var(--display); font-size:22px; margin:0 0 22px;}
  .field{margin-bottom:14px;}
  .field label{display:block; font-size:12px; color:var(--text-muted); margin-bottom:6px;}
  .field input, .field select, .field textarea{width:100%; background:var(--bg-raised); border:1px solid var(--border); color:var(--text-primary); padding:10px 12px; border-radius:8px; font-family:var(--body); font-size:14px;}

  /* Compose Email — mini dependency-free rich text editor + merge-tag chips */
  .compose-hint{background:var(--bg-raised); border:1px solid var(--border-soft); border-radius:8px; padding:10px 12px; font-size:11.5px; color:var(--text-muted); margin-bottom:12px;}
  .mergetag-row{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px;}
  .mergetag-chip{background:var(--bg-raised); border:1px solid var(--border); color:var(--text-dim); font-size:10.5px; padding:4px 9px; border-radius:20px; cursor:pointer;}
  .mergetag-chip:hover{border-color:var(--amber); color:var(--amber-text);}
  .rte-toolbar{display:flex; gap:4px; padding:6px; background:var(--bg-raised); border:1px solid var(--border); border-bottom:none; border-radius:8px 8px 0 0;}
  .rte-toolbar button{background:none; border:1px solid transparent; color:var(--text-primary); width:28px; height:28px; border-radius:5px; cursor:pointer; font-size:13px;}
  .rte-toolbar button:hover{background:var(--bg-hover); border-color:var(--border);}
  .rte-editor{min-height:160px; max-height:320px; overflow-y:auto; background:var(--bg-panel-white, var(--bg-panel)); border:1px solid var(--border); border-radius:0 0 8px 8px; padding:12px; font-size:13.5px; line-height:1.5;}
  .rte-editor:focus{outline:none; border-color:var(--amber);}
  .rte-editor p{margin:0 0 10px;}
  .email-history-item{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid var(--border-soft); font-size:12px;}
  .email-history-item:last-child{border-bottom:none;}
  .email-history-subject{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .email-status-pill{font-size:10px; padding:2px 8px; border-radius:10px; flex-shrink:0; text-transform:capitalize;}
  .email-status-pill.sent{background:rgba(79,209,197,.15); color:var(--cyan-text);}
  .email-status-pill.opened, .email-status-pill.clicked{background:rgba(63,191,111,.15); color:#3fbf6f;}
  .email-status-pill.failed{background:rgba(229,85,107,.15); color:var(--red-text);}
  .email-status-pill.unsubscribed, .email-status-pill.pending{background:var(--bg-raised); color:var(--text-dim);}
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--amber);}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .btn{cursor:pointer; border:none; border-radius:8px; padding:10px 16px; font-family:var(--body); font-weight:600; font-size:13px;}
  .btn-amber{background:var(--amber); color:#ffffff;}
  .btn-amber:hover{background:#2ecc71;}
  .btn-ghost{background:transparent; border:1px solid var(--border); color:var(--text-primary);}
  .btn-ghost:hover{border-color:var(--amber); color:var(--amber-text);}
  .btn-danger{background:var(--red); color:#ffffff;}
  .btn-sm{padding:6px 10px; font-size:12px;}
  .full-w{width:100%;}
  .error-msg{color:var(--red); font-size:12px; margin-top:10px; display:none;}

  #app{display:none;}
  .shell{display:grid; grid-template-columns:220px 1fr; min-height:100vh;}
  .sidebar{background:var(--bg-panel); border-right:1px solid var(--border); padding:22px 14px; display:flex; flex-direction:column;}
  .brand{display:flex; align-items:center; gap:10px; padding:0 8px 22px; border-bottom:1px solid var(--border-soft); margin-bottom:18px;}
  .brand-mark{width:30px; height:30px; border-radius:8px; background:linear-gradient(135deg, var(--amber), #1e8449); display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; color:#ffffff; font-size:14px; flex-shrink:0;}
  .brand-text .name{font-family:var(--display); font-weight:600; font-size:15px; color:var(--text-primary);}
  .brand-text .tag{font-family:var(--mono); font-size:10px; color:var(--amber); letter-spacing:.08em;}

  .stage-summary{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px;}
  .stage-stat{flex:1; min-width:130px; background:var(--bg-panel); border:1px solid var(--border-soft); border-radius:var(--radius); padding:12px 14px;}
  .stage-stat-label{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:6px;}
  .stage-stat-value{font-family:var(--mono); font-size:17px; color:var(--text-primary);}
  td.num, th.num{text-align:right;}
  .balance-due{color:var(--amber-text);}
  .balance-clear{color:var(--cyan-text);}
  .nav-item{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px; color:var(--text-muted); cursor:pointer; font-size:13px; font-weight:500; margin-bottom:2px;}
  .nav-item:hover{background:var(--bg-hover); color:var(--text-primary);}
  .nav-item.active{background:var(--bg-raised); color:var(--amber); box-shadow:inset 2px 0 0 var(--amber);}
  .nav-icon{width:16px; text-align:center; font-family:var(--mono); font-size:12px;}

  .sidebar-footer{margin-top:auto; padding-top:14px; border-top:1px solid var(--border-soft);}
  .admin-chip{display:flex; align-items:center; gap:8px; padding:8px; border-radius:8px;}
  .admin-avatar{width:28px; height:28px; border-radius:50%; background:var(--bg-raised); display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:11px; color:var(--amber); border:1px solid var(--border); flex-shrink:0;}
  .admin-meta .n{font-size:12px; font-weight:600; color:var(--text-primary);}
  .admin-meta .r{font-family:var(--mono); font-size:10px; color:var(--text-muted);}
  #logoutBtn{background:none; border:none; color:var(--text-dim); cursor:pointer; margin-left:auto; font-size:16px;}
  #logoutBtn:hover{color:var(--red);}

  #app{
    background:var(--bg-base);
  }
  .sidebar{
    --bg-base:#1e2b38; --bg-panel:#243447; --bg-raised:#2c3e50; --bg-hover:#34495e;
    --border:#34495e; --border-soft:#2c3e50;
    --text-primary:#ecf0f1; --text-muted:#cfd8dc; --text-dim:#a9b7c3;
    --amber-dim:#1e8449; --red-dim:#4a2530;
  }
  .main{padding:24px 28px; overflow-x:hidden; color:var(--text-primary);}
  .view{display:none;}
  .view.active{display:block;}
  .view-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; flex-wrap:wrap; gap:10px;}
  .view-header h2{font-family:var(--display); font-size:22px; margin:0;}
  .header-actions{display:flex; gap:8px; flex-wrap:wrap;}

  .toolbar{display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; align-items:center;}
  .toolbar input, .toolbar select{background:var(--bg-raised); border:1px solid var(--border); color:var(--text-primary); padding:8px 10px; border-radius:8px; font-size:12.5px;}
  .toolbar input{flex:1; min-width:180px;}
  .spacer{flex:1;}

  .bulk-bar{display:none; align-items:center; gap:10px; background:#fdf3df; border:1px solid var(--amber-dim); border-radius:8px; padding:10px 14px; margin-bottom:14px; flex-wrap:wrap;}
  .bulk-bar.visible{display:flex;}
  .bulk-bar .count{font-family:var(--mono); font-size:12px; color:var(--amber-text);}
  .bulk-bar select{background:var(--bg-raised); border:1px solid var(--border); color:var(--text-primary); padding:6px 8px; border-radius:6px; font-size:12px;}

  .panel{background:var(--bg-panel); border:1px solid var(--border); border-radius:var(--radius); padding:0; overflow:hidden;}
  table{width:100%; border-collapse:collapse; font-size:13px;}
  th{text-align:left; font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); padding:10px; border-bottom:1px solid var(--border); background:var(--bg-raised);}
  td{padding:10px; border-bottom:1px solid var(--border-soft); vertical-align:middle;}
  tr.lead-row:hover td{background:var(--bg-hover);}
  .mono{font-family:var(--mono); font-size:12px; color:var(--text-muted);}
  .lead-name{font-weight:600;}
  .lead-sub{font-size:11px; color:var(--text-dim);}

  .badge{display:inline-block; padding:3px 9px; border-radius:99px; font-size:11px; font-weight:600; font-family:var(--mono); white-space:nowrap;}
  .badge-dot{display:inline-block; min-width:16px; height:16px; padding:0 4px; border-radius:99px; background:var(--amber); color:#1a1a1a; font-size:10px; font-weight:700; line-height:16px; text-align:center; margin-left:4px;}
  .badge-with-alert{display:inline-flex; align-items:center; gap:7px;}
  .stale-lead-dot{position:relative; width:7px; height:7px; border-radius:50%; background:var(--red); flex-shrink:0;}
  .stale-lead-dot::before, .stale-lead-dot::after{content:""; position:absolute; inset:0; border-radius:50%; border:1.5px solid var(--red); animation:staleLeadWave 1.8s linear infinite;}
  .stale-lead-dot::after{animation-delay:.9s;}
  @keyframes staleLeadWave{0%{transform:scale(1); opacity:.8;}100%{transform:scale(3.2); opacity:0;}}
  .priority-low{color:var(--text-dim);}
  .priority-medium{color:var(--text-muted);}
  .priority-high{color:var(--amber-text);}
  .priority-urgent{color:var(--red-text); font-weight:700;}

  .tag-chip{display:inline-block; padding:2px 8px; border-radius:99px; font-size:10.5px; font-family:var(--mono); margin:1px 3px 1px 0; border:1px solid var(--border);}

  .pagination{display:flex; gap:8px; justify-content:flex-end; margin-top:14px; align-items:center; font-size:12px; color:var(--text-muted);}

  /* Deals — Kanban board */
  .deal-forecast-bar{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px;}
  .board-wrap{overflow-x:auto; padding-bottom:8px;}
  .board{display:flex; gap:12px; align-items:flex-start; min-height:200px;}
  .board-col{flex:0 0 260px; background:var(--bg-panel); border:1px solid var(--border-soft); border-radius:var(--radius); display:flex; flex-direction:column; max-height:calc(100vh - 260px);}
  .board-col-head{padding:10px 12px; border-bottom:1px solid var(--border-soft); position:sticky; top:0; background:var(--bg-panel); border-radius:var(--radius) var(--radius) 0 0; z-index:1;}
  .board-col-head .name{font-weight:600; font-size:13px; display:flex; align-items:center; gap:6px;}
  .board-col-head .name .dot{width:8px; height:8px; border-radius:50%; flex-shrink:0;}
  .board-col-head .meta{font-family:var(--mono); font-size:10.5px; color:var(--text-dim); margin-top:3px;}
  .board-col-body{padding:8px; overflow-y:auto; flex:1; min-height:60px;}
  .board-col-body.drag-over{background:var(--bg-hover); outline:2px dashed var(--amber); outline-offset:-4px;}
  .deal-card{background:var(--bg-raised); border:1px solid var(--border); border-radius:8px; padding:10px; margin-bottom:8px; cursor:grab; font-size:12.5px;}
  .deal-card:active{cursor:grabbing;}
  .deal-card.dragging{opacity:.4;}
  .deal-card .title{font-weight:600; margin-bottom:4px;}
  .deal-card .value{font-family:var(--mono); color:var(--cyan-text); font-size:12px;}
  .deal-card .meta-row{display:flex; justify-content:space-between; margin-top:6px; font-size:11px; color:var(--text-dim);}
  .deal-card .owner{display:flex; align-items:center; gap:4px;}
  .board-empty{font-size:11.5px; color:var(--text-dim); text-align:center; padding:14px 4px;}
  .pagination button{background:var(--bg-raised); border:1px solid var(--border); color:var(--text-primary); border-radius:6px; padding:5px 10px; cursor:pointer;}
  .pagination button:disabled{opacity:.4; cursor:not-allowed;}
  .empty-state{text-align:center; padding:40px 20px; color:var(--text-dim);}

  .modal-overlay{position:fixed; inset:0; background:rgba(8,10,14,.7); display:none; align-items:center; justify-content:center; z-index:50;}
  .modal-overlay.open{display:flex;}
  .modal{width:650px; max-width:92vw; max-height:88vh; overflow-y:auto; background:var(--bg-panel); border:1px solid var(--border); border-radius:var(--radius); padding:24px;}
  .modal h3{font-family:var(--display); margin:0 0 16px; font-size:17px;}
  .modal-actions{display:flex; justify-content:flex-end; gap:10px; margin-top:18px;}

  .drawer-overlay{position:fixed; inset:0; background:rgba(8,10,14,.6); display:none; z-index:60;}
  .drawer-overlay.open{display:block;}
  .drawer{position:fixed; top:0; right:0; bottom:0; width:520px; max-width:94vw; background:var(--bg-panel); border-left:1px solid var(--border); padding:26px; overflow-y:auto; transform:translateX(100%); transition:transform .2s ease;}
  .drawer-overlay.open .drawer{transform:translateX(0);}
  .drawer-header{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:6px;}
  .drawer-header h2{font-family:var(--display); margin:0; font-size:20px;}
  .drawer-close{background:none; border:none; color:var(--text-dim); font-size:20px; cursor:pointer;}
  .drawer-sub{color:var(--text-muted); font-size:13px; margin-bottom:18px;}
  .drawer-section{margin-bottom:22px;}
  .drawer-section h4{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); margin:0 0 10px;}
  .kv-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; font-size:13px;}
  .kv-grid > div{background:var(--bg-raised); border:1px solid var(--border-soft); border-radius:8px; padding:9px 11px;}
  .kv-grid .k{color:var(--text-dim); font-size:11px; font-family:var(--mono);}
  .kv-grid .v{margin-top:2px;}
  .kv-grid select, .kv-grid input{width:100%; background:var(--bg-panel); border:1px solid var(--border); color:var(--text-primary); padding:6px 8px; border-radius:6px; font-size:12.5px;}
  .info-icon{cursor:help; color:var(--text-dim); border:1px solid var(--border); border-radius:50%; width:14px; height:14px; display:inline-flex; align-items:center; justify-content:center; font-size:10px; margin-left:3px; vertical-align:middle;}
  .field-hint{margin-top:5px; font-size:11.5px; color:var(--text-dim); line-height:1.4;}
  .milestone-path{display:flex; flex-wrap:wrap; align-items:center; gap:2px; margin-top:10px; padding:8px 10px; background:var(--bg-raised); border:1px solid var(--border); border-radius:8px;}
  .milestone-chip{font-size:11px; font-family:var(--mono); padding:4px 8px; border-radius:5px; border:1px solid var(--border); color:var(--text-dim); white-space:nowrap;}
  .milestone-current{font-weight:700; border-width:1.5px;}
  .milestone-arrow{color:var(--text-dim); font-size:13px; margin:0 1px;}
  .milestone-branch-sep{color:var(--border); margin:0 6px; font-size:12px;}

  .stage-stepper{display:flex; align-items:flex-start; margin-bottom:10px;}
  .stage-step{display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; flex-shrink:0; width:64px;}
  .stage-step.disabled{cursor:default;}
  .stage-circle{width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:11px; font-weight:700; border:2px solid var(--border); background:var(--bg-raised); color:var(--text-dim); transition:all .15s;}
  .stage-step.stage-done .stage-circle{background:var(--cyan); border-color:var(--cyan); color:#0a1f1d;}
  .stage-step.stage-current .stage-circle{background:var(--amber); border-color:var(--amber); color:#ffffff; box-shadow:0 0 0 3px rgba(39,174,96,.2);}
  .stage-step.stage-upcoming .stage-circle{background:var(--bg-raised); border-color:var(--border); color:var(--text-dim);}
  .stage-label{font-size:10px; font-family:var(--mono); text-align:center; color:var(--text-dim); line-height:1.3;}
  .stage-step.stage-current .stage-label{color:var(--amber-text); font-weight:600;}
  .stage-step.stage-done .stage-label{color:var(--cyan-text);}
  .stage-line{flex:1; height:2px; background:var(--border); margin-top:12px; min-width:12px;}
  .stage-line.done{background:var(--cyan);}
  .stage-exit-badge{display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:99px; font-size:11.5px; font-weight:600; font-family:var(--mono); background:var(--red-dim); color:var(--red-text); margin-bottom:10px;}
  .stage-actions{display:flex; gap:8px; margin-top:8px;}

  .dup-banner{background:#fdf3df; border:1px solid var(--amber-dim); border-radius:8px; padding:10px 12px; margin-bottom:18px; font-size:12.5px;}
  .dup-banner .title{color:var(--amber-text); font-weight:600; margin-bottom:6px;}
  .dup-item{display:flex; justify-content:space-between; align-items:center; padding:6px 0; border-top:1px solid var(--border-soft);}

  .note-item, .timeline-item, .attach-item{padding:8px 0; border-bottom:1px solid var(--border-soft); font-size:12.5px;}
  .note-item .meta, .timeline-item .meta, .attach-item .meta{font-family:var(--mono); font-size:10.5px; color:var(--text-dim); margin-top:3px;}
  .activity-item{display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--border-soft); cursor:pointer;}
  .activity-item:hover{background:var(--bg-hover);}
  .activity-item:last-child{border-bottom:none;}
  .activity-icon{width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; background:var(--bg-raised);}
  .activity-icon.kind-note{background:rgba(39,174,96,.15);}
  .activity-icon.kind-timeline{background:rgba(79,209,197,.15);}
  .activity-icon.kind-task_created, .activity-icon.kind-task_completed{background:rgba(63,191,111,.15);}
  .activity-icon.kind-email{background:rgba(74,144,217,.15);}
  .activity-icon.kind-document{background:rgba(199,111,209,.15);}
  .activity-body{flex:1; min-width:0;}
  .activity-summary{font-size:12.5px;}
  .activity-summary b{font-weight:600;}
  .activity-detail{font-size:11.5px; color:var(--text-muted); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .activity-meta{font-size:10.5px; color:var(--text-dim); margin-top:3px; font-family:var(--mono);}
  .add-note-row{display:flex; gap:8px; margin-top:10px;}
  .add-note-row textarea{flex:1; min-height:50px; resize:vertical;}

  .tag-picker{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px;}
  .tag-pick{padding:4px 10px; border-radius:99px; font-size:11px; font-family:var(--mono); border:1px solid var(--border); cursor:pointer; background:var(--bg-raised);}
  .tag-pick.active{border-color:var(--amber); color:var(--amber-text); background:#fdf0da;}

  .import-drop{border:1.5px dashed var(--border); border-radius:8px; padding:24px; text-align:center; color:var(--text-muted); font-size:13px;}
  .import-result .row{display:flex; justify-content:space-between; padding:4px 0; border-bottom:1px solid var(--border-soft);}

  /* ---------- Polish pass: elevation, motion, focus, table/typography refinement ---------- */
  #app{
    --shadow-sm:0 1px 2px rgba(16,24,40,.04), 0 1px 1px rgba(16,24,40,.03);
    --shadow-md:0 4px 14px rgba(16,24,40,.07), 0 1px 3px rgba(16,24,40,.05);
    --shadow-lg:0 16px 40px rgba(16,24,40,.14), 0 2px 8px rgba(16,24,40,.06);
  }
  .panel{box-shadow:var(--shadow-sm); border-radius:12px; transition:box-shadow .15s ease;}
  .stage-stat{box-shadow:var(--shadow-sm); transition:transform .15s ease, box-shadow .15s ease;}
  .stage-stat:hover{box-shadow:var(--shadow-md); transform:translateY(-1px);}
  .modal{box-shadow:var(--shadow-lg); border-radius:14px;}
  .drawer{box-shadow:-10px 0 34px rgba(16,24,40,.12);}
  .modal-overlay.open{backdrop-filter:blur(2px);}
  .view-header h2{font-weight:700; letter-spacing:-.01em;}
  th{font-weight:600;}
  tr.lead-row{transition:background .12s ease;}
  tbody tr:nth-child(even) td{background:rgba(17,20,28,.012);}
  tr.lead-row:hover td{background:var(--bg-hover) !important;}
  .btn{transition:transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease, color .12s ease;}
  .btn-amber{box-shadow:0 1px 2px rgba(178,105,15,.22);}
  .btn-amber:hover{box-shadow:0 4px 10px rgba(178,105,15,.26); transform:translateY(-1px);}
  .btn-ghost:hover{background:var(--bg-raised);}
  .pagination button{transition:all .12s ease;}
  .pagination button:not(:disabled):hover{border-color:var(--amber); color:var(--amber-text);}
  .toolbar input:focus, .toolbar select:focus{outline:none; border-color:var(--amber); box-shadow:0 0 0 3px rgba(39,174,96,.15);}
  .nav-item{transition:background .12s ease, color .12s ease;}
  :focus-visible{outline:2px solid var(--amber); outline-offset:2px;}
  @media (prefers-reduced-motion: reduce){ *{transition:none !important; animation:none !important;} }

  /* ---- Boot splash -------------------------------------------------
     Shown from the very first paint until we know whether to restore the
     session or ask for sign-in. Without it the page is blank for that
     moment (and, if JavaScript never runs at all, blank forever) - the
     inline fallback script below covers that case too. */
  #bootSplash{position:fixed; inset:0; z-index:200; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:18px;
    background:radial-gradient(circle at 30% 20%, #1a2030, #0c0e13 70%);}
  #bootSplash .ring{width:44px; height:44px; border-radius:50%;
    border:3px solid rgba(255,255,255,.14); border-top-color:var(--amber, #e0a63c);
    animation:bootSpin .9s linear infinite;}
  #bootSplash .label{font-size:12px; letter-spacing:.14em; text-transform:uppercase;
    color:#8a8f98; font-family:var(--mono, ui-monospace, monospace);}
  #bootSplash .hint{font-size:12px; color:#8a8f98; max-width:280px; text-align:center; display:none;}
  @keyframes bootSpin{to{transform:rotate(360deg);}}
  /* Reduced motion: the global rule below disables the spin, so the ring is
     left as a static mark and the wording carries the meaning instead. */
  @media (prefers-reduced-motion: reduce){ #bootSplash .ring{border-top-color:var(--amber, #e0a63c);} }
