  :root{
    --bg:#F7F7F8;
    --ink:#151518;
    --ink-soft:#3F3F46;
    --ink-on-accent:#151518;
    --paper:#FFFFFF;
    --yellow:#FFD400;
    --yellow-subtle:#FFF6D6;
    --yellow-strong:#FFE787;
    --yellow-hover:#E6C200;
    --pink:#EF4444;
    --cyan:#3B82F6;
    --green:#22C55E;
    --purple:#8B5CF6;
    --green-subtle:#E8F8EF;
    --green-subtle-border:#BEEBD1;
    --green-subtle-fg:#15803D;
    --purple-subtle:#F1EBFF;
    --blue-subtle:#EAF2FF;
    --blue-subtle-border:#C7DBFF;
    --blue-subtle-fg:#1D4ED8;
    --pink-subtle:#FDEAF3;
    --teal-subtle:#E3F7F5;
    --orange-subtle:#FFEEDD;
    --orange-subtle-border:#FFD3A8;
    --orange-subtle-fg:#C2410C;
    --indigo-subtle:#ECEBFF;
    --lime-subtle:#F3F9DC;
    --red-subtle:#FDEAEA;
    --line:#E4E4E7;
    --tile:#1B1B1E;
    --tile-2:#26262B;
    --tile-edge:#0E0E10;
    --tile-ink:#F4F4F5;
    --tile-muted:#A1A1AA;
    --line-strong:#D4D4D8;
    --muted:#71717A;
    --neon:#00A33A;--neon-glow:transparent;
    --radius:14px;
    --shadow-sm:0 1px 2px rgba(16,16,20,0.06);
    --shadow-md:0 12px 32px rgba(16,16,20,0.12);
    /* page background textures (Settings → Background) */
    --pat-line:rgba(21,21,24,0.045);--pat-line-strong:rgba(21,21,24,0.09);--pat-dot:rgba(21,21,24,0.16);
    --glow-a:rgba(255,212,0,0.28);--glow-b:rgba(34,197,94,0.14);
    --wave-alpha:0.6;--net-dot:0.7;--net-line:0.26;
  }
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --bg:#111113;--ink:#F4F4F5;--ink-soft:#C4C4CB;--paper:#1B1B1E;
      --yellow-subtle:#3A3016;--yellow-strong:#5C4B14;--yellow-hover:#FFDD33;
      --green-subtle:#12301F;--green-subtle-border:#1F5A38;--green-subtle-fg:#4ADE80;
      --purple-subtle:#291F42;
      --blue-subtle:#122540;--blue-subtle-border:#1F4066;--blue-subtle-fg:#7FB2FF;
      --pink-subtle:#3A1B2B;--teal-subtle:#113330;--orange-subtle:#3A2412;
      --orange-subtle-border:#5C3A1D;--orange-subtle-fg:#FB923C;
      --indigo-subtle:#211F42;--lime-subtle:#2C3312;--red-subtle:#3A1616;
      --line:#2C2C31;--line-strong:#3D3D43;--muted:#9A9AA2;--neon:#39FF14;--neon-glow:rgba(57,255,20,0.45);
      --tile:#0C0C0E;--tile-2:#18181B;--tile-edge:#000;
      --shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow-md:0 12px 32px rgba(0,0,0,0.5);
      --pat-line:rgba(255,255,255,0.045);--pat-line-strong:rgba(255,255,255,0.09);--pat-dot:rgba(255,255,255,0.16);
      --glow-a:rgba(255,212,0,0.13);--glow-b:rgba(34,197,94,0.10);
      --wave-alpha:0.95;--net-dot:0.85;--net-line:0.32;
    }
  }
  :root[data-theme="dark"]{
    --bg:#111113;--ink:#F4F4F5;--ink-soft:#C4C4CB;--paper:#1B1B1E;
    --yellow-subtle:#3A3016;--yellow-strong:#5C4B14;--yellow-hover:#FFDD33;
    --green-subtle:#12301F;--green-subtle-border:#1F5A38;--green-subtle-fg:#4ADE80;
    --purple-subtle:#291F42;
    --blue-subtle:#122540;--blue-subtle-border:#1F4066;--blue-subtle-fg:#7FB2FF;
    --pink-subtle:#3A1B2B;--teal-subtle:#113330;--orange-subtle:#3A2412;
    --orange-subtle-border:#5C3A1D;--orange-subtle-fg:#FB923C;
    --indigo-subtle:#211F42;--lime-subtle:#2C3312;--red-subtle:#3A1616;
    --line:#2C2C31;--line-strong:#3D3D43;--muted:#9A9AA2;--neon:#39FF14;--neon-glow:rgba(57,255,20,0.45);
    --tile:#0C0C0E;--tile-2:#18181B;--tile-edge:#000;
    --shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow-md:0 12px 32px rgba(0,0,0,0.5);
    --pat-line:rgba(255,255,255,0.045);--pat-line-strong:rgba(255,255,255,0.09);--pat-dot:rgba(255,255,255,0.16);
    --glow-a:rgba(255,212,0,0.13);--glow-b:rgba(34,197,94,0.10);
    --wave-alpha:0.95;--net-dot:0.85;--net-line:0.32;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{margin:0;}
  button{font-family:inherit;cursor:pointer;}
  input,textarea,select{font-family:inherit;font-size:14px;}
  ::selection{background:var(--yellow-subtle);}
  button,.btn,.tab-btn,.icon-btn,input,textarea,select{transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;}
  body,.topbar,section.card,.day-col,.kcol,.kcard,.social-card,.modal{transition:background .2s ease,border-color .2s ease;}

  /* ---------- header ---------- */
  /* Page background texture, chosen in Settings (data-bg on <body>; none = plain) */
  body[data-bg="graph"]{
    background-image:linear-gradient(var(--pat-line-strong) 1px,transparent 1px),linear-gradient(90deg,var(--pat-line-strong) 1px,transparent 1px),
      linear-gradient(var(--pat-line) 1px,transparent 1px),linear-gradient(90deg,var(--pat-line) 1px,transparent 1px);
    background-size:100px 100px,100px 100px,20px 20px,20px 20px;
  }
  body[data-bg="dots"]{background-image:radial-gradient(circle,var(--pat-dot) 1.1px,transparent 1.6px);background-size:18px 18px;}
  body[data-bg="glow"]{
    background-image:radial-gradient(55% 45% at 0% 0%,var(--glow-a),transparent 75%),radial-gradient(50% 45% at 100% 100%,var(--glow-b),transparent 75%);
    background-attachment:fixed;
  }
  #bgParticles{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;}
  .topbar{
    display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;gap:12px;
    padding:18px 24px;
    border-bottom:1px solid var(--line);
    background:var(--paper);
  }
  .topbar-left{display:flex;align-items:center;gap:40px;flex-wrap:wrap;}
  .brand{display:flex;align-items:center;gap:10px;}
  .brand h1{font-size:19px;font-weight:700;letter-spacing:-0.01em;text-transform:uppercase;}
  .brand h1 span{
    background:var(--yellow-subtle);color:var(--ink);padding:1px 8px;border-radius:6px;border:1px solid var(--line);
  }
  .tabs{display:flex;gap:26px;flex-wrap:wrap;}
  .tab-btn{
    border:none;background:transparent;color:var(--muted);
    padding:6px 0;border-radius:0;font-weight:600;font-size:14.5px;position:relative;
  }
  .tab-btn:hover{color:var(--ink);}
  .tab-btn.active{color:var(--ink);}
  .tab-btn.active::after{
    content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;
    background:var(--yellow);border-radius:2px;
  }
  .icon-btn{
    border:1px solid var(--line);background:var(--paper);width:38px;height:38px;color:var(--muted);
    border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;
  }
  .icon-btn:hover{background:var(--bg);color:var(--ink);}
  /* Phones: title + icon buttons share the first row, tabs get their own
     single row that scrolls sideways instead of wrapping. */
  @media (max-width:640px){
    .topbar{display:grid;grid-template-columns:1fr auto;gap:10px 12px;padding:12px 16px 0;}
    .topbar-left{display:contents;}
    .brand{grid-row:1;grid-column:1;min-width:0;}
    .brand h1{font-size:16px;}
    .topbar > .row{grid-row:1;grid-column:2;}
    .tabs{grid-row:2;grid-column:1/-1;flex-wrap:nowrap;gap:22px;overflow-x:auto;scrollbar-width:none;padding-bottom:8px;margin:0 -16px;padding-left:16px;padding-right:16px;}
    .tabs::-webkit-scrollbar{display:none;}
    .tab-btn{white-space:nowrap;flex-shrink:0;}
    /* iOS Safari zooms the page on focus for inputs under 16px. */
    input[type=text],input[type=date],input[type=time],input[type=number],input[type=email],input[type=password],textarea,select{font-size:16px;}
  }

  main{max-width:1240px;margin:0 auto;padding:24px;}
  .panel{display:none;}
  .panel.active{display:block;}

  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .full{grid-column:1/-1;}
  @media (max-width:860px){.grid2{grid-template-columns:1fr;}}

  section.card{
    background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
    padding:22px;margin-bottom:20px;box-shadow:var(--shadow-sm);overflow:hidden;
  }
  .card-head{
    display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap;
  }
  /* each top-level card gets its own fixed tint on the header strip only —
     the rest of the card stays the normal paper background */
  [class*="card-tint-"] .card-head{
    margin:-22px -22px 14px -22px;padding:16px 22px;
    border-radius:var(--radius) var(--radius) 0 0;
    border-bottom:1px solid var(--line);
  }
  .card-tint-yellow .card-head{background:var(--yellow-subtle);}
  .card-tint-green .card-head{background:var(--green-subtle);}
  .card-tint-purple .card-head{background:var(--purple-subtle);}
  .card-tint-blue .card-head{background:var(--blue-subtle);}
  .card-tint-pink .card-head{background:var(--pink-subtle);}
  .card-tint-teal .card-head{background:var(--teal-subtle);}
  .card-tint-orange .card-head{background:var(--orange-subtle);}
  .card-tint-indigo .card-head{background:var(--indigo-subtle);}
  .card-tint-lime .card-head{background:var(--lime-subtle);}
  .card-tint-red .card-head{background:var(--red-subtle);}
  .card-tint-dark .card-head{background:#1a1a1a;color:#F4F4F5;border-bottom-color:var(--line-strong);}
  .card-tint-dark .card-head h2{color:#F4F4F5;}
  .card-tint-dark .card-sub{color:#B0B0B6;}
  .secret-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--paper);}
  .secret-what{font-size:14px;color:var(--ink-soft);}
  .secret-src{margin-top:8px;font-size:12.5px;color:var(--muted);font-style:italic;}
  .card-head h2{font-size:16px;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;}
  .card-sub{font-size:12.5px;color:var(--muted);margin-top:2px;font-weight:500;}
  .badge{
    font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:999px;
    padding:1px 10px;background:var(--yellow-subtle);color:var(--ink);
  }
  .btn{
    border:1px solid var(--yellow);background:var(--yellow);color:var(--ink-on-accent);font-weight:600;
    padding:8px 16px;border-radius:10px;font-size:13.5px;white-space:nowrap;box-shadow:var(--shadow-sm);
  }
  .btn:hover{background:var(--yellow-hover);border-color:var(--yellow-hover);}
  .btn.secondary{background:var(--paper);border-color:var(--line);color:var(--ink);}
  .btn.secondary:hover{background:var(--bg);}
  .btn.small{padding:5px 10px;font-size:12px;border-radius:8px;}
  .btn:disabled{opacity:0.5;cursor:default;}
  .btn.ghost{background:transparent;border:none;font-weight:600;color:var(--muted);padding:4px 6px;box-shadow:none;}
  .btn.ghost:hover{color:var(--ink);}
  .btn.danger{background:var(--pink);border-color:var(--pink);color:#fff;}
  .btn.danger:hover{filter:brightness(0.92);}
  input[type=text],input[type=date],input[type=time],input[type=number],textarea,select{
    border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--paper);color:var(--ink);
  }
  input[type=text]:focus,input[type=date]:focus,input[type=time]:focus,input[type=number]:focus,textarea:focus,select:focus{
    outline:none;border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,212,0,0.25);
  }
  textarea{width:100%;resize:vertical;min-height:70px;}
  .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
  .muted{color:var(--muted);font-size:12.5px;}
  .empty{
    border:1px dashed var(--line-strong);border-radius:12px;padding:16px;text-align:center;
    color:var(--muted);font-size:13.5px;
  }

  /* calendar */
  .week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;}
  @media (max-width:860px){.week-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
  .day-col{border:1px solid var(--line);border-radius:12px;padding:8px;min-height:110px;min-width:0;overflow:hidden;background:var(--paper);}
  .day-col.today{border-color:var(--yellow);background:var(--yellow-subtle);}
  .day-label{font-weight:700;font-size:12px;margin-bottom:6px;}
  .day-sub{font-weight:500;color:var(--muted);font-size:11px;}
  .evt{
    background:var(--yellow-subtle);border:1px solid var(--line);border-radius:8px;
    padding:4px 20px 4px 6px;font-size:11.5px;font-weight:600;margin-bottom:5px;
    position:relative;color:var(--ink);
  }
  .evt .t{font-weight:500;display:block;font-size:10.5px;color:var(--ink);opacity:0.7;}
  .evt .loc{font-weight:500;display:block;font-size:10px;color:var(--ink);opacity:0.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .evt.google{background:var(--green-subtle);border-color:var(--green-subtle-border);}
  .evt-del{
    position:absolute;top:3px;right:4px;background:none;border:none;cursor:pointer;
    font-size:11px;color:var(--ink);opacity:0.45;padding:0;line-height:1;
  }
  .evt-del:hover{opacity:0.9;}
  .add-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
  .add-form input{flex:1;min-width:120px;}
  .add-form .date-field{flex:1;min-width:160px;}
  /* dd/mm/yyyy date field: a text input over a hidden native date input that
     still provides the calendar picker (see enhanceDateInputs). */
  .date-field{position:relative;display:inline-flex;align-items:center;}
  .modal .date-field{display:flex;width:100%;}
  .date-field > input[type=text]{flex:1;min-width:0;width:100%;padding-right:40px;}
  .date-field > input[type=date]{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:0;pointer-events:none;min-width:0;padding:0;border:0;}
  .date-field > button{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:32px;height:30px;border:none;background:none;border-radius:6px;font-size:16px;line-height:1;cursor:pointer;}
  .date-field > button:hover{background:var(--bg);}
  .date-field.invalid > input[type=text]{border-color:var(--pink);}

  /* todo */
  .todo-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);}
  .todo-item:last-child{border-bottom:none;}
  .todo-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--yellow);}
  .todo-item span{flex:1;font-size:14.5px;}
  .todo-item.done span{text-decoration:line-through;color:var(--muted);}

  /* book / weird knowledge */
  .tag{display:inline-block;font-size:11px;font-weight:600;background:var(--green-subtle);color:var(--green-subtle-fg);border:1px solid var(--green-subtle-border);border-radius:999px;padding:1px 10px;margin-bottom:8px;}
  .fact-title{font-weight:700;font-size:15px;margin-bottom:6px;}
  .fact-body{font-size:14px;color:var(--ink-soft);}
  .fact-src{margin-top:10px;font-size:12.5px;color:var(--muted);font-style:italic;}

  /* newsletter */
  .insight-entry{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;}
  .insight-entry .meta{font-size:11.5px;color:var(--muted);font-weight:600;margin-bottom:6px;display:flex;justify-content:space-between;}
  .insight-entry ul{margin:0;padding-left:18px;font-size:13.5px;}
  .insight-entry li{margin-bottom:3px;}

  /* kanban */
  .kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  @media (max-width:920px){.kanban{grid-template-columns:1fr 1fr;}}
  .kcol{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow-sm);}
  .kcol-head{padding:10px 12px;font-weight:600;font-size:12.5px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;color:var(--ink);}
  .kcol-head.idea{background:var(--bg);}
  .kcol-head.recorded{background:var(--yellow-subtle);}
  .kcol-head.inEdit{background:var(--purple-subtle);}
  .kcol-head.ready{background:var(--green-subtle);}
  .kcol-body{padding:10px;min-height:60px;}
  .kcard{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:var(--paper);box-shadow:var(--shadow-sm);}
  .kcard .ktitle{font-weight:600;font-size:13.5px;margin-bottom:6px;}
  .kcard .kdate{font-size:11px;color:var(--muted);margin-bottom:6px;}
  .kcard .kactions{display:flex;gap:4px;justify-content:space-between;}
  .kadd{border:1px dashed var(--line-strong);border-radius:10px;padding:8px;text-align:center;color:var(--muted);font-size:12.5px;font-weight:600;background:transparent;width:100%;}

  /* video ideas */
  .idea-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;display:flex;gap:12px;}
  .idea-num{font-weight:700;font-size:16px;width:26px;flex-shrink:0;color:var(--muted);}
  .idea-title{font-weight:700;font-size:14.5px;margin-bottom:4px;}
  .idea-hook{font-size:13px;font-style:italic;color:var(--ink);margin-bottom:4px;}
  .idea-angle{font-size:13.5px;color:var(--ink-soft);}

  /* small one-offs used by the cards' templates */
  .day-empty{font-size:11px;margin-top:6px;}
  .status-note{font-size:11px;}
  .knowledge-err{margin-top:8px;}
  .insight-del{font-size:11px;}

  /* Learn German card */
  .de-section + .de-section{margin-top:14px;}
  .de-heading{font-weight:700;font-size:13.5px;margin-bottom:8px;color:var(--blue-subtle-fg);}
  .de-row{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--line);}
  .de-num{font-weight:700;font-size:13px;color:var(--muted);width:22px;flex-shrink:0;}
  .de-main{flex:1;}
  .de-text{font-weight:600;font-size:14.5px;}
  .de-text.de-word{font-size:14px;}
  .de-meaning{font-weight:400;color:var(--ink-soft);}
  .de-sub{font-size:13px;color:var(--ink-soft);margin-top:2px;}

  /* social intel */
  .social-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;}
  .social-card{display:flex;flex-direction:column;border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:14px;background:var(--paper);box-shadow:var(--shadow-sm);overflow:hidden;}
  .social-head{display:flex;align-items:center;gap:10px;padding:14px 14px 0;}
  .social-logo{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--logo-bg);flex-shrink:0;}
  .social-logo svg{width:22px;height:22px;display:block;}
  .social-title{flex:1;min-width:0;}
  .social-name{font-weight:700;font-size:14.5px;}
  .social-account{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .social-status{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;border:1px solid transparent;}
  .social-status.on{background:var(--green-subtle);color:var(--green-subtle-fg);border-color:var(--green-subtle-border);}
  .social-status.off{background:transparent;color:var(--muted);border-color:var(--line);}
  .social-body{padding:16px 14px 6px;flex:1;}
  .social-num{font-size:32px;font-weight:800;line-height:1.1;letter-spacing:-0.01em;}
  .social-card.off .social-num{color:var(--muted);}
  .social-lbl{font-size:12px;color:var(--muted);font-weight:600;margin-top:2px;}
  .social-meta{font-size:12px;color:var(--muted);margin-top:10px;}
  .social-err{font-size:12px;color:var(--pink);margin-top:6px;}
  .social-actions{display:flex;gap:8px;padding:12px 14px 14px;}
  .social-actions .btn{flex:1;justify-content:center;}

  /* channels / sponsor leads */
  .chan-add{display:flex;gap:8px;margin-bottom:12px;}
  .chan-add input{flex:1;min-width:0;}
  .chan-add-err{margin:-4px 0 12px;}
  .chan-item{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;background:var(--paper);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;}
  .chan-item:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-1px);}
  .chan-avatar-wrap{position:relative;flex-shrink:0;}
  .chan-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;background:var(--line);display:block;box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--line);}
  .chan-initial{display:grid;place-items:center;font-weight:800;font-size:17px;color:#fff;background:var(--purple);}
  .chan-yt{position:absolute;right:-3px;bottom:-3px;width:18px;height:18px;border-radius:50%;background:#FF0033;display:grid;place-items:center;box-shadow:0 0 0 2px var(--paper);}
  .chan-yt svg{width:9px;height:9px;}
  .chan-info{flex:1;min-width:0;}
  .chan-name{font-weight:700;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .chan-name a{color:inherit;text-decoration:none;}
  .chan-name a:hover{text-decoration:underline;}
  .chan-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;}
  .chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap;}
  .chip.ok{background:var(--green-subtle);color:var(--green-subtle-fg);border-color:var(--green-subtle-border);}
  .chip.lead{background:var(--yellow-subtle);color:var(--ink);border-color:var(--yellow-strong);}
  .chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
  .chan-err{font-size:12px;color:var(--pink);margin-top:5px;}
  .chan-actions{display:flex;gap:4px;flex-shrink:0;}
  .icon-round{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);display:grid;place-items:center;cursor:pointer;font-size:14px;transition:background .15s ease,color .15s ease,border-color .15s ease;}
  .icon-round:hover{background:var(--bg);color:var(--ink);border-color:var(--line-strong);}
  .icon-round.danger:hover{background:var(--red-subtle);color:var(--pink);border-color:var(--pink);}
  .icon-round:disabled{cursor:default;opacity:.7;}
  .icon-round .spinner{margin:0;}
  .lead-tabs{display:inline-flex;gap:2px;padding:3px;margin-bottom:14px;border-radius:999px;background:var(--bg);border:1px solid var(--line);}
  .lead-tab{border:0;background:transparent;color:var(--muted);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease;}
  .lead-tab:hover{color:var(--ink);}
  .lead-tab span{display:inline-block;min-width:18px;margin-left:4px;padding:0 5px;border-radius:999px;background:var(--line);color:var(--ink-soft);font-size:11px;}
  .lead-tab.active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-sm);}
  .lead-tab.active span{background:var(--yellow);color:var(--ink-on-accent);}
  .lead-card{position:relative;border:1px solid var(--line);border-radius:14px;padding:14px 14px 12px 17px;margin-bottom:12px;background:var(--paper);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease;}
  .lead-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);}
  .lead-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--yellow);}
  .lead-card.contacted::before{background:var(--green);}
  .lead-card.not-a-fit::before{background:var(--line-strong);}
  .lead-card.not-a-fit{opacity:.62;}
  .lead-head{display:flex;align-items:center;gap:11px;}
  .lead-logo{width:40px;height:40px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;font-weight:800;font-size:17px;color:#fff;background:var(--c);}
  .lead-title{flex:1;min-width:0;}
  .lead-brand{font-weight:800;font-size:15.5px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .lead-tags{display:flex;gap:5px;margin-top:4px;flex-wrap:wrap;}
  .lead-cat,.lead-badge{font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap;border:1px solid transparent;}
  .lead-cat{background:var(--bg);color:var(--ink-soft);border-color:var(--line);}
  .lead-cat.tone-green{background:var(--green-subtle);color:var(--green-subtle-fg);border-color:var(--green-subtle-border);}
  .lead-cat.tone-blue{background:var(--blue-subtle);color:var(--blue-subtle-fg);border-color:var(--blue-subtle-border);}
  .lead-cat.tone-orange{background:var(--orange-subtle);color:var(--orange-subtle-fg);border-color:var(--orange-subtle-border);}
  .lead-cat.tone-pink{background:var(--pink-subtle);color:var(--pink);}
  .lead-cat.tone-purple{background:var(--purple-subtle);color:var(--purple);}
  .lead-badge.new{background:var(--yellow);color:var(--ink-on-accent);}
  .lead-badge.contacted{background:var(--green-subtle);color:var(--green-subtle-fg);border-color:var(--green-subtle-border);}
  .lead-badge.not-a-fit{background:var(--bg);color:var(--muted);border-color:var(--line);}
  .lead-desc{font-size:13.5px;line-height:1.5;margin-top:10px;color:var(--ink-soft);}
  .lead-quote{font-size:12.5px;line-height:1.55;margin-top:10px;padding:9px 12px;background:var(--bg);border:1px dashed var(--line-strong);border-radius:10px;color:var(--ink-soft);overflow-wrap:anywhere;}
  .lead-quote-label{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}
  .lead-quote a,.lead-src a{color:var(--blue-subtle-fg);}
  .lead-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;flex-wrap:wrap;}
  .lead-src{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);min-width:0;overflow-wrap:anywhere;}
  .lead-src img,.lead-src .mini-initial{width:18px;height:18px;border-radius:50%;flex-shrink:0;object-fit:cover;}
  .lead-src .mini-initial{display:grid;place-items:center;font-size:10px;font-weight:800;color:#fff;background:var(--purple);}
  .lead-actions{display:flex;align-items:center;gap:6px;margin-left:auto;}

  /* subscription tracker — compact tile grid */
  .sub-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;}
  .sub-stats[hidden]{display:none;}
  .sub-stat{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg);min-width:0;}
  .sub-stat b{display:block;font-size:19px;font-weight:800;letter-spacing:-0.01em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .sub-stat span{display:block;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #subsList{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;}
  #subsList > .empty{grid-column:1/-1;}
  .sub-tile{
    position:relative;border:1px solid var(--line);border-radius:12px;padding:10px 12px 11px;
    display:flex;flex-direction:column;gap:6px;min-width:0;background:var(--paper);
  }
  .sub-tile.sub-inactive{opacity:0.6;}
  .sub-chart{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:var(--paper);}
  .sub-chart[hidden]{display:none;}
  .sub-chart svg{width:170px;height:170px;flex-shrink:0;}
  .sub-chart .seg{cursor:default;transition:opacity .15s ease;}
  .sub-chart.hovering .seg:not(.hot){opacity:0.35;}
  .sub-chart-center-val{font-size:15px;font-weight:800;fill:var(--ink);font-variant-numeric:tabular-nums;}
  .sub-chart-center-lbl{font-size:9.5px;font-weight:600;fill:var(--muted);}
  .sub-chart-legend{flex:1;min-width:200px;display:grid;gap:2px;font-size:12.5px;}
  .sub-chart-row{display:grid;grid-template-columns:10px 1fr auto 42px;gap:8px;align-items:center;padding:3px 6px;border-radius:6px;color:var(--ink);}
  .sub-chart-row.hot{background:var(--line);}
  .sub-chart-row .dot{width:10px;height:10px;border-radius:3px;}
  .sub-chart-row .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .sub-chart-row .num{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600;}
  .sub-chart-row .pct{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;}
  .sub-chart-empty{color:var(--muted);font-size:13px;}
  /* subscription records — one collapsible row per month */
  .modal.sub-records-modal{max-width:560px;}
  .sub-rec-year{display:flex;justify-content:space-between;font-size:12px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);margin:14px 2px 6px;}
  .sub-rec-year:first-child{margin-top:0;}
  .sub-rec-month{border:1px solid var(--line);border-radius:10px;margin-bottom:6px;background:var(--paper);}
  .sub-rec-month summary{display:grid;grid-template-columns:92px 1fr auto;gap:10px;align-items:center;padding:8px 10px;cursor:pointer;list-style:none;font-size:13px;}
  .sub-rec-month summary::-webkit-details-marker{display:none;}
  .sub-rec-month[open] summary{border-bottom:1px solid var(--line);}
  .sub-rec-month .m-name{font-weight:700;color:var(--ink);}
  .sub-rec-month .m-bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden;}
  .sub-rec-month .m-bar div{height:100%;border-radius:999px;background:var(--ink);opacity:0.7;}
  .sub-rec-month .m-total{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;}
  .sub-rec-month .m-total small{font-weight:500;color:var(--muted);margin-left:4px;}
  .sub-rec-bills{padding:6px 10px 8px;display:grid;gap:2px;}
  .sub-rec-bill{display:grid;grid-template-columns:10px 54px 1fr auto;gap:8px;align-items:center;font-size:12.5px;padding:2px 0;}
  .sub-rec-bill .dot{width:9px;height:9px;border-radius:50%;}
  .sub-rec-bill .date{color:var(--muted);font-variant-numeric:tabular-nums;}
  .sub-rec-bill .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .sub-rec-bill .amt{font-variant-numeric:tabular-nums;font-weight:600;}
  .sub-rec-bill.upcoming{opacity:0.6;}
  .sub-rec-bill.upcoming .amt::after{content:' · upcoming';font-weight:500;color:var(--muted);}
  .sub-tile.sub-winding-down{border-color:var(--orange-subtle-fg);box-shadow:0 0 0 1px var(--orange-subtle-fg);}
  .sub-top{display:flex;align-items:center;gap:7px;min-width:0;}
  .sub-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
  .sub-name{flex:1;min-width:0;font-weight:700;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .sub-amount{font-weight:800;font-size:21px;line-height:1.1;letter-spacing:-0.02em;color:var(--ink);font-variant-numeric:tabular-nums;}
  .sub-amount small{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:0;}
  .sub-progress{height:5px;border-radius:999px;background:var(--line);overflow:hidden;}
  .sub-progress-fill{height:100%;border-radius:999px;}
  .sub-next{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);font-weight:500;}
  .sub-details{display:grid;gap:1px;padding-top:6px;margin-top:auto;border-top:1px solid var(--line);}
  .sub-meta{font-size:11.5px;color:var(--muted);overflow-wrap:anywhere;}
  /* "Ending soon" sort: the end date and cancel reminder stand out */
  .sort-ending .sub-meta.sub-end,.sort-ending .sub-meta.sub-cancel{font-weight:700;border-radius:6px;padding:2px 6px;margin:1px -6px;}
  .sort-ending .sub-meta.sub-end{background:var(--yellow-subtle);color:var(--ink);}
  .sort-ending .sub-meta.sub-cancel{background:var(--orange-subtle);color:var(--orange-subtle-fg);}
  .sub-notes{white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .sub-tag{font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap;}
  .sub-tag.soon{background:var(--orange-subtle);color:var(--orange-subtle-fg);}
  .sub-tag.off{background:var(--line);color:var(--muted);}
  .sub-menu-btn{
    width:24px;height:24px;border-radius:7px;flex-shrink:0;
    background:var(--paper);border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);
  }
  .sub-menu-btn:hover{color:var(--ink);background:var(--bg);}
  .sub-menu{
    display:none;position:absolute;top:38px;right:8px;z-index:5;min-width:120px;
    background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-md);padding:4px;
  }
  .sub-menu.open{display:block;}
  .sub-menu button{
    display:flex;align-items:center;gap:6px;width:100%;padding:7px 9px;border-radius:6px;
    background:none;border:none;font-size:12.5px;font-weight:600;color:var(--ink);text-align:left;
  }
  .sub-menu button:hover{background:var(--bg);}
  @media (max-width:640px){
    .sub-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
    #subsList{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
    .sub-tile{padding:9px 10px;}
    .sub-amount{font-size:18px;}
  }

  /* projects */
  .proj-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
  .proj-pill{
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font-weight:600;font-size:13.5px;
    padding:7px 14px;border-radius:999px;box-shadow:var(--shadow-sm);max-width:240px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .proj-pill:hover{background:var(--bg);color:var(--ink);}
  .proj-pill.active{background:var(--yellow-subtle);border-color:var(--yellow);color:var(--ink);}
  .proj-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
  .proj-title{font-size:22px;font-weight:800;letter-spacing:-0.01em;overflow-wrap:anywhere;}
  .rule-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);}
  .rule-item:last-child{border-bottom:none;}
  .rule-num{font-weight:800;font-size:13px;color:var(--muted);width:22px;flex-shrink:0;padding-top:2px;}
  .rule-item span,.todo-item span{overflow-wrap:anywhere;}
  .rule-item span{flex:1;font-size:14.5px;}
  .rule-item input[type=text],.todo-item input[type=text]{flex:1;min-width:0;}
  .item-actions{display:flex;gap:2px;flex-shrink:0;}
  .research-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .research-controls input[type=number]{width:64px;}
  .research-wrap{overflow-x:auto;}
  .research-table{border-collapse:collapse;width:100%;table-layout:fixed;min-width:100%;}
  .research-table td{border:1px solid var(--line);padding:0;vertical-align:top;min-width:140px;}
  /* each cell is a standalone note: its first line is the heading */
  .res-cell{
    position:relative;min-height:110px;padding:10px;font-size:13.5px;color:var(--ink);
    white-space:pre-wrap;overflow-wrap:anywhere;outline:none;cursor:text;
  }
  .res-cell:focus{box-shadow:inset 0 0 0 2px var(--yellow);}
  .res-cell > div:first-child{font-weight:700;text-decoration:underline;text-underline-offset:3px;margin-bottom:2px;}
  /* notes grow with their text instead of scrolling inside the box */
  #projNotes{overflow:hidden;resize:none;}
  /* a line ending in * gets circled in yellow, ** in red, like a pen mark on paper */
  .res-cell > div.res-mark-1,.res-cell > div.res-mark-2{width:fit-content;max-width:100%;box-sizing:border-box;border:2px solid var(--yellow);border-radius:50%;padding:4px 14px;margin:2px 0;}
  .res-cell > div.res-mark-2{border-color:var(--pink);}
  .res-cell.is-empty::before{content:attr(data-placeholder);position:absolute;color:var(--muted);pointer-events:none;}
  /* project timer — flip clock: dark split-flap tiles in both themes */
  section.card.timer-card{background:var(--tile-2);border-color:var(--tile-edge);}
  .timer-card .card-head{
    margin:-22px -22px 18px -22px;padding:16px 22px;border-bottom:1px solid rgba(255,255,255,0.06);
  }
  .timer-card .card-head h2{color:var(--tile-ink);}
  .timer-card .card-sub{color:var(--tile-muted);}
  .flip-row{display:flex;gap:18px;justify-content:center;align-items:flex-start;}
  .flip-group{display:grid;gap:8px;justify-items:center;}
  .flip-digits{display:flex;gap:5px;}
  .flip{
    position:relative;width:52px;height:74px;border-radius:9px;background:var(--tile);color:var(--tile-ink);
    font-size:48px;font-weight:800;display:grid;place-items:center;overflow:hidden;font-variant-numeric:tabular-nums;
    box-shadow:inset 0 -2px 0 rgba(255,255,255,0.04),0 6px 14px rgba(0,0,0,0.35);
  }
  /* the hinge line across the middle of each tile */
  .flip::after{content:'';position:absolute;left:0;right:0;top:50%;height:2px;background:var(--tile-2);box-shadow:0 1px 0 rgba(255,255,255,0.05);}
  .flip.tick span{animation:flipIn .35s ease-out;}
  @keyframes flipIn{from{transform:rotateX(-80deg) translateY(-6px);opacity:.2;}to{transform:none;opacity:1;}}
  @media (prefers-reduced-motion:reduce){.flip.tick span{animation:none;}}
  .flip-lbl{font-size:10.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--yellow);}
  .flip-colon{font-size:36px;font-weight:800;color:#52525B;line-height:74px;}
  .timer-done .flip{color:var(--pink);}
  .timer-foot{
    display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
    margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,0.06);
    font-size:12.5px;color:var(--tile-muted);font-weight:500;
  }
  .timer-actions{display:flex;gap:8px;flex-wrap:wrap;}
  .timer-card .btn.secondary{background:transparent;color:var(--tile-ink);border-color:#3F3F46;box-shadow:none;}
  .timer-card .btn.secondary:hover{background:rgba(255,255,255,0.06);}
  .timer-setup{justify-content:center;}
  .timer-setup .muted{color:var(--tile-muted);font-size:14px;}
  .timer-card input[type=number],.timer-card select{background:var(--tile);color:var(--tile-ink);border-color:#3F3F46;}
  .timer-setup input[type=number]{width:90px;}
  .timer-status{font-size:11px;font-weight:700;border-radius:999px;padding:2px 10px;border:1px solid var(--line);white-space:nowrap;}
  .timer-status.running{background:var(--green-subtle);color:var(--green-subtle-fg);border-color:var(--green-subtle-border);}
  .timer-status.paused{background:var(--yellow-subtle);color:var(--ink);}
  .timer-status.done{background:var(--red-subtle);color:var(--pink);border-color:transparent;}
  @media (max-width:560px){
    .flip{width:31px;height:48px;font-size:28px;border-radius:7px;}
    .flip-digits{gap:3px;}
    .flip-colon{display:none;}
    .flip-row{gap:10px;}
  }
  /* modal */
  .overlay{display:none;position:fixed;inset:0;background:rgba(20,20,23,0.45);align-items:flex-start;justify-content:center;padding:20px;z-index:50;overflow-y:auto;overscroll-behavior:contain;}
  .overlay.active{display:flex;}
  .modal{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;max-width:420px;width:100%;box-shadow:var(--shadow-md);margin:auto;}
  .modal h3{font-size:16px;font-weight:700;margin-bottom:14px;}
  .modal label{display:block;font-size:12.5px;font-weight:600;margin:12px 0 5px;color:var(--muted);}
  .modal input, .modal textarea{width:100%;}
  .modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;}

  .spinner{
    display:inline-block;width:14px;height:14px;border:2px solid var(--line-strong);
    border-top-color:var(--ink);border-radius:50%;animation:spin 0.7s linear infinite;vertical-align:-2px;margin-right:6px;
  }
  @keyframes spin{to{transform:rotate(360deg);}}
  .err-text{color:var(--pink);font-size:12.5px;font-weight:600;margin-top:8px;}
  .sync-warning{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;max-width:560px;margin:0 auto;padding:10px 14px;border-radius:10px;background:var(--red-subtle);color:var(--pink);border:1px solid var(--pink);font-size:14px;text-align:center;}
  .sync-warning[hidden]{display:none;}

  /* ===================== investments ===================== */
  #panel-investments [hidden],#invOverlay [hidden],#invTxOverlay [hidden],#watchOverlay [hidden],#invHideBtn[hidden]{display:none !important;}
  #invHideBtn[aria-pressed="true"]{background:var(--yellow-subtle);color:var(--ink);}
  .inv-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--paper);flex-wrap:wrap;}
  .inv-seg button{border:none;background:transparent;padding:5px 10px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;}
  .inv-seg button:hover{color:var(--ink);}
  .inv-seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper);}
  #invCustomRange .date-field{width:150px;}
  .inv-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;}
  @media (max-width:760px){.inv-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}
  .inv-kpi{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg);min-width:0;}
  .inv-kpi.lead{background:var(--tile);border-color:var(--tile-edge);color:var(--tile-ink);}
  .inv-kpi > span{display:block;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);}
  .inv-kpi.lead > span,.inv-kpi.lead small{color:var(--tile-muted);}
  .inv-kpi b{display:block;font-size:22px;font-weight:800;letter-spacing:-0.01em;font-variant-numeric:tabular-nums;margin-top:2px;overflow-wrap:anywhere;}
  .inv-kpi small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}
  .inv-up{color:var(--green-subtle-fg);}
  .inv-down{color:var(--pink);}
  .inv-pill{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;white-space:nowrap;}
  .inv-pill.inv-up{background:var(--green-subtle);}
  .inv-pill.inv-down{background:var(--red-subtle);}
  .inv-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;}
  .inv-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px;}
  .inv-legend .muted{font-weight:500;}
  .inv-key-worth{background:var(--ink);}
  .inv-key-invested{background:var(--muted);}
  .inv-chart{position:relative;}
  .inv-chart svg{display:block;width:100%;height:auto;touch-action:pan-y;}
  .inv-grid{stroke:var(--line);stroke-width:1;}
  .inv-axis{font-size:11px;fill:var(--muted);font-family:inherit;}
  .inv-gap{fill:var(--yellow);fill-opacity:0.18;}
  .inv-line-invested{fill:none;stroke:var(--muted);stroke-width:2;stroke-dasharray:5 4;}
  .inv-line-worth{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round;}
  .inv-end{fill:var(--yellow);stroke:var(--ink);stroke-width:2;}
  .inv-hover{stroke:var(--line-strong);stroke-width:1;}
  .inv-tip{position:absolute;top:6px;pointer-events:none;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.5;white-space:nowrap;z-index:2;}
  .inv-mix{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center;}
  .inv-mix svg{width:170px;height:170px;}
  @media (max-width:480px){.inv-mix{grid-template-columns:minmax(0,1fr);justify-items:center;}}
  .inv-mix-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;}
  .inv-mix-table td{padding:7px 4px;border-bottom:1px solid var(--line);}
  .inv-mix-table tr:last-child td{border-bottom:none;}
  .inv-mix-table td:not(:first-child){text-align:right;}
  .inv-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:-1px;flex-shrink:0;}
  .inv-up-item{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);}
  .inv-up-item:first-child{padding-top:0;}
  .inv-up-item:last-child{border-bottom:none;}
  .inv-when{flex:0 0 58px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:4px 0;}
  .inv-when.soon{border-color:var(--orange-subtle-border);background:var(--orange-subtle);}
  .inv-when b{display:block;font-size:17px;line-height:1.15;font-variant-numeric:tabular-nums;}
  .inv-when span{font-size:10.5px;font-weight:700;text-transform:uppercase;color:var(--muted);}
  .inv-up-body{min-width:0;flex:1;}
  .inv-up-title{font-weight:700;font-size:13.5px;}
  .inv-up-meta{font-size:12.5px;color:var(--muted);}
  .inv-up-actions{margin-top:6px;}
  .inv-chips{display:flex;gap:6px;flex-wrap:wrap;}
  .inv-chip{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;}
  .inv-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper);}
  .inv-table-wrap{overflow-x:auto;margin-top:12px;border:1px solid var(--line);border-radius:12px;}
  .inv-table{width:100%;border-collapse:collapse;font-size:13px;min-width:820px;}
  .inv-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--bg);white-space:nowrap;}
  .inv-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;}
  .inv-table tr:last-child td{border-bottom:none;}
  .inv-table .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
  .inv-name{font-weight:700;}
  .inv-detail{font-size:12px;color:var(--muted);margin-top:2px;}
  .inv-neon{color:var(--neon);text-shadow:0 0 6px var(--neon-glow);}
  .inv-notes{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .inv-type{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;border-radius:6px;padding:2px 7px;border:1px solid var(--line);white-space:nowrap;}
  .inv-src{font-size:11.5px;font-weight:600;color:var(--muted);}
  .inv-src.stale{color:var(--pink);}
  .inv-row-actions{white-space:nowrap;text-align:right;}
  .inv-row-actions button{border:none;background:none;color:var(--muted);font-weight:600;font-size:12px;padding:2px 4px;cursor:pointer;}
  .inv-row-actions button:hover{color:var(--ink);}
  .inv-row-actions button[data-act="delete"]:hover{color:var(--pink);}
  .inv-hold-table{min-width:940px;}
  .inv-alert-btn{border:none;background:none;padding:0;cursor:pointer;white-space:nowrap;color:var(--muted);font-weight:600;font-size:12px;}
  .inv-alert-btn:hover{color:var(--ink);}
  .inv-act{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:wrap;}
  .inv-act:last-of-type{border-bottom:none;}
  .inv-act-what{min-width:0;flex:1;}
  .inv-act-amt{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-soft);display:flex;gap:6px;align-items:center;}
  .inv-kind{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--muted);margin-right:8px;display:inline-block;min-width:52px;}
  .inv-act-del{border:none;background:none;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0 2px;opacity:0.5;}
  .inv-act-del:hover{opacity:1;color:var(--pink);}
  .modal.inv-modal{max-width:480px;}
  .inv-modal select{width:100%;}
  .inv-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .inv-coin-results{display:grid;gap:4px;margin-top:6px;}
  .inv-coin{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:6px 8px;font-size:13px;cursor:pointer;color:var(--ink);}
  .inv-coin:hover{background:var(--bg);}
  .inv-coin img{border-radius:50%;}
  .inv-calc{margin-top:14px;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px dashed var(--line-strong);font-size:12.5px;color:var(--ink-soft);}
  .inv-hidden .inv-amt{filter:blur(7px);}
  @media (prefers-reduced-motion:no-preference){.inv-amt{transition:filter .2s;}}
  .inv-coin{flex-wrap:wrap;}
  .inv-sec-name{flex-basis:100%;font-size:11.5px;color:var(--muted);}
  .watch-table{min-width:860px;}
  .watch-table td{vertical-align:middle;}
  .watch-spark{display:block;overflow:visible;}
  .watch-spark polyline{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;}
  .watch-target{display:inline-block;font-size:11.5px;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:2px 9px;white-space:nowrap;color:var(--ink-soft);}
  .watch-target.met{background:var(--yellow-subtle);border-color:var(--yellow);color:var(--ink);}
  .watch-targets{display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px;}
  .watch-order-h{width:1%;}
  .watch-order{white-space:nowrap;padding-right:0 !important;}
  .watch-grip{display:inline-block;vertical-align:middle;color:var(--muted);cursor:grab;font-size:15px;padding:0 4px;user-select:none;}
  .watch-move{display:inline-flex;flex-direction:column;vertical-align:middle;}
  .watch-move button{border:none;background:none;color:var(--muted);font-size:9px;line-height:1;padding:2px 4px;cursor:pointer;}
  .watch-move button:hover:not(:disabled){color:var(--ink);}
  .watch-move button:disabled{opacity:.3;cursor:default;}
  .watch-table tr.dragging{opacity:.4;}
  .watch-table tr.drop-before td{box-shadow:inset 0 2px 0 var(--cyan);}
  .watch-table tr.drop-after td{box-shadow:inset 0 -2px 0 var(--cyan);}
  .watch-line{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;}
