/* ── Dark Mode ──────────────────────────────────────────────────────────── */
/* Colors are wrapped by role as var(--hb-x,#x) background / var(--ht-x,#x) text /
   var(--hc-x,#x) border — the fallback keeps light mode byte-identical and
   html.ez-dark redefines the variables. Pale backgrounds become dark tints of the
   same hue, dark text becomes light, solid brand colors are left as-is.
   Regenerated by script; edit the generator rather than the values by hand. */
html.ez-dark{
  --hb-86efac:#21402c; --hb-a7f3d0:#214032; --hb-bae6fd:#213540; --hb-bbf7d0:#21402c; --hb-bde8f3:#213a40;
  --hb-bfdbfe:#212f40; --hb-c9eeea:#21403d; --hb-cbd5e1:#232f3d; --hb-ccd:#27273a; --hb-ccfbf1:#214039;
  --hb-cffafe:#213d40; --hb-d0e4fb:#212f40; --hb-d1fae5:#214030; --hb-dbeafe:#212e40; --hb-dce8fb:#212d40;
  --hb-dcfce7:#21402c; --hb-dddcf5:#222140; --hb-ddeaff:#212d40; --hb-e0e7ff:#212840; --hb-e0f2ea:#214032;
  --hb-e0f2fe:#213440; --hb-e0f4f9:#213a40; --hb-e2e8f0:#212e40; --hb-e3edfa:#212e40; --hb-e3f2fd:#213340;
  --hb-e5e7eb:#2a2e37; --hb-e6f7f5:#21403c; --hb-e8d5f7:#322140; --hb-e8eaf6:#212540; --hb-e8edf5:#212d40;
  --hb-e8edf8:#212b40; --hb-e8f0fb:#212e40; --hb-e8f0fe:#212c40; --hb-e8f4fd:#213340; --hb-e8f5e9:#214023;
  --hb-eafaf0:#21402d; --hb-ecfdf5:#214031; --hb-ecfeff:#213e40; --hb-ede9fe:#272140; --hb-eeedfb:#232140;
  --hb-eef1f7:#212b40; --hb-eef2f7:#212f40; --hb-eef2f8:#212d40; --hb-eef2f9:#212c40; --hb-eef2ff:#212840;
  --hb-eef4ff:#212c40; --hb-eff6ff:#212f40; --hb-f0f4f8:#213040; --hb-f0f4fa:#212d40; --hb-f0f4ff:#212940;
  --hb-f0f5ff:#212b40; --hb-f0f7ff:#212f40; --hb-f0f9ff:#213440; --hb-f0fdf4:#21402a; --hb-f0fdfa:#214039;
  --hb-f1f5f9:#213040; --hb-f3e5f5:#3c2140; --hb-f3e8fb:#332140; --hb-f3e8ff:#302140; --hb-f3eeff:#2a2140;
  --hb-f3f6fa:#212e40; --hb-f4f8ff:#212c40; --hb-f5f3ff:#262140; --hb-f5f5f5:#1f2937; --hb-f5f7fa:#212d40;
  --hb-f5f8ff:#212a40; --hb-f6f8fb:#212d40; --hb-f6f9ff:#212b40; --hb-f7f9fc:#212d40; --hb-f8f5ff:#2a2140;
  --hb-f8f9fb:#232c3e; --hb-f8f9ff:#212540; --hb-f8fafc:#213040; --hb-f8faff:#212a40; --hb-f9fafb:#27303a;
  --hb-f9fefb:#21402d; --hb-facaca:#402121; --hb-fae8ff:#392140; --hb-faf5ff:#302140; --hb-faf8ff:#2a2140;
  --hb-faf9ff:#262140; --hb-fafbfc:#24303d; --hb-fafbfe:#212940; --hb-fafbff:#212740; --hb-fbfcfe:#212b40;
  --hb-fbfcff:#212940; --hb-fca5a5:#402121; --hb-fce4ec:#40212b; --hb-fce7f3:#402133; --hb-fcfdff:#212b40;
  --hb-fde68a:#403a21; --hb-fde6b4:#403621; --hb-fde8e8:#402121; --hb-fdecea:#402421; --hb-fdf2f8:#402132;
  --hb-fdf4ff:#3a2140; --hb-fdf5f9:#402130; --hb-fecaca:#402121; --hb-fed7aa:#403221; --hb-fee2e2:#402121;
  --hb-fef2f2:#402121; --hb-fef3c7:#403a21; --hb-fef3e0:#403521; --hb-fef9c3:#403d21; --hb-fefce8:#403d21;
  --hb-ffd700:#403b21; --hb-ffe4e6:#402123; --hb-ffebee:#402126; --hb-ffedcc:#403521; --hb-ffedd5:#403321;
  --hb-fff:#182130; --hb-fff0f0:#402121; --hb-fff1f2:#402123; --hb-fff3cd:#403921; --hb-fff3e0:#403421;
  --hb-fff3f3:#402121; --hb-fff59d:#403d21; --hb-fff5d6:#1b2331; --hb-fff5f5:#402121; --hb-fff7e6:#403621;
  --hb-fff7ed:#403221; --hb-fff7fb:#402130; --hb-fff8e1:#403921; --hb-fffbeb:#403a21; --hb-fffbf0:#131a24;
  --hb-fffef5:#403d21;
  --hc-5eead4:#32675f; --hc-67e8f9:#326167; --hc-6ee7b7:#326752; --hc-7dd3fc:#325667; --hc-86efac:#326745;
  --hc-90caf9:#324f67; --hc-93c5fd:#324b67; --hc-99f6e4:#32675d; --hc-a5b4fc:#323b67; --hc-a5d6a7:#326734;
  --hc-a5f3fc:#326267; --hc-a7f3d0:#32674f; --hc-b0c4de:#324967; --hc-b9c6d3:#3b4d5e; --hc-bbf7d0:#326744;
  --hc-bfdbfe:#324a67; --hc-c3d6f5:#324667; --hc-c4b5fd:#3d3267; --hc-c5d8f9:#324567; --hc-c8d4e3:#344a65;
  --hc-c9d6e8:#324867; --hc-cbd5e1:#384b61; --hc-ccc:#3d4b63; --hc-ccd:#3d3d5c; --hc-d0c4e8:#443267; --hc-d0d7de:#3f4d5a;
  --hc-d0d7e8:#324267; --hc-d1d5db:#434b56; --hc-d5dce6:#394960; --hc-d7dce4:#3e495b; --hc-d8b4fe:#4c3267;
  --hc-dbe6f7:#324767; --hc-ddd6fe:#3b3267; --hc-dde:#333366; --hc-dde4f0:#324567; --hc-dde5ef:#324a67;
  --hc-dde8f5:#324a67; --hc-e0e7ef:#344b65; --hc-e2e8f0:#344965; --hc-e5e7eb:#434956; --hc-e5e7ef:#3a425f;
  --hc-e5eaf0:#384b61; --hc-e9d5ff:#4b3267; --hc-e9ecef:#404d59; --hc-ecfeff:#326467; --hc-eee:#2e3a4d;
  --hc-eef1f4:#3c4c5d; --hc-eef1f7:#324467; --hc-eef2f7:#324a67; --hc-eff6ff:#324967; --hc-f0eeff:#383267;
  --hc-f0f2f5:#3d495c; --hc-f0f2f6:#394660; --hc-f0f3f7:#354964; --hc-f0f4f8:#324d67; --hc-f0fdf4:#326742;
  --hc-f1f5f9:#324d67; --hc-f3d5e4:#67324d; --hc-f4f6fb:#324167; --hc-f5b7b1:#673632; --hc-f5c6cb:#673237;
  --hc-f8fafc:#324c67; --hc-f9a8d4:#67324f; --hc-fbcfe8:#673250; --hc-fca5a5:#673232; --hc-fcd34d:#675b32;
  --hc-fda4af:#673238; --hc-fdba74:#674d32; --hc-fde047:#675f32; --hc-fde68a:#675d32; --hc-fdf4ff:#5e3267;
  --hc-fecdd3:#673238; --hc-fed7aa:#674e32; --hc-ffb74d:#675232; --hc-ffcc80:#675232; --hc-ffe08a:#675932;
  --hc-fff:#2e3a4d; --hc-fff8e1:#675b32;
  --ht-01579b:#82beed; --ht-0369a1:#82c7ed; --ht-047857:#82edcf; --ht-065f46:#82edcf; --ht-075985:#82c8ed;
  --ht-0d47a1:#82aced; --ht-0d9488:#82ede4; --ht-0e7490:#82d6ed; --ht-0f172a:#96aad9; --ht-0f766e:#82ede5;
  --ht-111:#e2e9f3; --ht-134e4a:#8ce3dd; --ht-14532d:#8ce3af; --ht-155e75:#86d1e9; --ht-1565c0:#82b4ed;
  --ht-15803d:#84ebab; --ht-164e63:#8acce5; --ht-166534:#8ae5ad; --ht-1a237e:#8991e7; --ht-1a2a3a:#9cb8d3;
  --ht-1a3a6e:#8bade4; --ht-1a3c6e:#8bafe4; --ht-1a4fa8:#83aaec; --ht-1a56db:#82a3ed; --ht-1a5ec8:#82aced;
  --ht-1a73e8:#82b0ed; --ht-1b5e20:#90df96; --ht-1d4ed8:#829eed; --ht-1e1b4b:#9a96d9; --ht-1e293b:#a0b2cf;
  --ht-1e3a5f:#92b2dd; --ht-1e3a8a:#8aa2e5; --ht-1e40af:#859dea; --ht-1e429f:#87a2e8; --ht-1f5fa8:#86b4e9;
  --ht-222:#e2e9f3; --ht-223:#a9a9c6; --ht-2563eb:#82a4ed; --ht-283593:#8f99e0; --ht-2b6cb0:#8cb7e3; --ht-2e7d32:#97d99a;
  --ht-333:#cbd8ea; --ht-334:#adadc2; --ht-334155:#a6b4c9; --ht-3730a3:#9591df; --ht-37474f:#abbcc4; --ht-3b3654:#ada8c7;
  --ht-445:#cbd8ea; --ht-475569:#aab5c5; --ht-4c1d95:#ad87e8; --ht-4f46e5:#8882ed; --ht-500724:#ed82ad;
  --ht-555:#a9b8cc; --ht-556:#a9b8cc; --ht-5a3a00:#edc782; --ht-5b21b6:#ad86e9; --ht-666:#a9b8cc; --ht-667:#a9b8cc;
  --ht-6a1b9a:#c486ea; --ht-6b21a8:#bc88e8; --ht-6d28d9:#ad86ea; --ht-78350f:#eda982; --ht-7a5b00:#edd282;
  --ht-7b1fa2:#cb87e8; --ht-7c3aed:#aa82ed; --ht-7e22ce:#bb84eb; --ht-7f0000:#ed8282; --ht-7f1d1d:#e48b8b;
  --ht-831843:#e986ae; --ht-854d0e:#edbb82; --ht-86198f:#e285ea; --ht-8d4a00:#edba82; --ht-92400e:#edab82;
  --ht-9333ea:#ba82ed; --ht-991b1b:#ea8686; --ht-9a3412:#ed9d82; --ht-9d174d:#ed82ad; --ht-9f1239:#ed82a0;
  --ht-a16207:#edc182; --ht-b45309:#edb082; --ht-b71c1c:#ec8383; --ht-b91c1c:#ec8383; --ht-be185d:#ed82af;
  --ht-c00:#ed8282; --ht-c0392b:#e5938a; --ht-c2185b:#ed82ac; --ht-c2410c:#eda182; --ht-c62828:#e78888;
  --ht-dc2626:#eb8484; --ht-e11d48:#ed829a;
  --ht-rgba-0-0-0-45:rgba(255,255,255,.5);
  color-scheme:dark;
}
html.ez-dark{background:#0f1620;}
html.ez-dark body{background:#0f1620;color:#dbe4f0;}
/* Login screen keeps its own branded look regardless of the saved theme. */
html.ez-dark #loginScreen{
  --hb-86efac:#86efac; --hb-a7f3d0:#a7f3d0; --hb-bae6fd:#bae6fd; --hb-bbf7d0:#bbf7d0; --hb-bde8f3:#bde8f3;
  --hb-bfdbfe:#bfdbfe; --hb-c9eeea:#c9eeea; --hb-cbd5e1:#cbd5e1; --hb-ccd:#ccd; --hb-ccfbf1:#ccfbf1; --hb-cffafe:#cffafe;
  --hb-d0e4fb:#d0e4fb; --hb-d1fae5:#d1fae5; --hb-dbeafe:#dbeafe; --hb-dce8fb:#dce8fb; --hb-dcfce7:#dcfce7;
  --hb-dddcf5:#dddcf5; --hb-ddeaff:#ddeaff; --hb-e0e7ff:#e0e7ff; --hb-e0f2ea:#e0f2ea; --hb-e0f2fe:#e0f2fe;
  --hb-e0f4f9:#e0f4f9; --hb-e2e8f0:#e2e8f0; --hb-e3edfa:#e3edfa; --hb-e3f2fd:#e3f2fd; --hb-e5e7eb:#e5e7eb;
  --hb-e6f7f5:#e6f7f5; --hb-e8d5f7:#e8d5f7; --hb-e8eaf6:#e8eaf6; --hb-e8edf5:#e8edf5; --hb-e8edf8:#e8edf8;
  --hb-e8f0fb:#e8f0fb; --hb-e8f0fe:#e8f0fe; --hb-e8f4fd:#e8f4fd; --hb-e8f5e9:#e8f5e9; --hb-eafaf0:#eafaf0;
  --hb-ecfdf5:#ecfdf5; --hb-ecfeff:#ecfeff; --hb-ede9fe:#ede9fe; --hb-eeedfb:#eeedfb; --hb-eef1f7:#eef1f7;
  --hb-eef2f7:#eef2f7; --hb-eef2f8:#eef2f8; --hb-eef2f9:#eef2f9; --hb-eef2ff:#eef2ff; --hb-eef4ff:#eef4ff;
  --hb-eff6ff:#eff6ff; --hb-f0f4f8:#f0f4f8; --hb-f0f4fa:#f0f4fa; --hb-f0f4ff:#f0f4ff; --hb-f0f5ff:#f0f5ff;
  --hb-f0f7ff:#f0f7ff; --hb-f0f9ff:#f0f9ff; --hb-f0fdf4:#f0fdf4; --hb-f0fdfa:#f0fdfa; --hb-f1f5f9:#f1f5f9;
  --hb-f3e5f5:#f3e5f5; --hb-f3e8fb:#f3e8fb; --hb-f3e8ff:#f3e8ff; --hb-f3eeff:#f3eeff; --hb-f3f6fa:#f3f6fa;
  --hb-f4f8ff:#f4f8ff; --hb-f5f3ff:#f5f3ff; --hb-f5f5f5:#f5f5f5; --hb-f5f7fa:#f5f7fa; --hb-f5f8ff:#f5f8ff;
  --hb-f6f8fb:#f6f8fb; --hb-f6f9ff:#f6f9ff; --hb-f7f9fc:#f7f9fc; --hb-f8f5ff:#f8f5ff; --hb-f8f9fb:#f8f9fb;
  --hb-f8f9ff:#f8f9ff; --hb-f8fafc:#f8fafc; --hb-f8faff:#f8faff; --hb-f9fafb:#f9fafb; --hb-f9fefb:#f9fefb;
  --hb-facaca:#facaca; --hb-fae8ff:#fae8ff; --hb-faf5ff:#faf5ff; --hb-faf8ff:#faf8ff; --hb-faf9ff:#faf9ff;
  --hb-fafbfc:#fafbfc; --hb-fafbfe:#fafbfe; --hb-fafbff:#fafbff; --hb-fbfcfe:#fbfcfe; --hb-fbfcff:#fbfcff;
  --hb-fca5a5:#fca5a5; --hb-fce4ec:#fce4ec; --hb-fce7f3:#fce7f3; --hb-fcfdff:#fcfdff; --hb-fde68a:#fde68a;
  --hb-fde6b4:#fde6b4; --hb-fde8e8:#fde8e8; --hb-fdecea:#fdecea; --hb-fdf2f8:#fdf2f8; --hb-fdf4ff:#fdf4ff;
  --hb-fdf5f9:#fdf5f9; --hb-fecaca:#fecaca; --hb-fed7aa:#fed7aa; --hb-fee2e2:#fee2e2; --hb-fef2f2:#fef2f2;
  --hb-fef3c7:#fef3c7; --hb-fef3e0:#fef3e0; --hb-fef9c3:#fef9c3; --hb-fefce8:#fefce8; --hb-ffd700:#FFD700;
  --hb-ffe4e6:#ffe4e6; --hb-ffebee:#ffebee; --hb-ffedcc:#ffedcc; --hb-ffedd5:#ffedd5; --hb-fff:#fff; --hb-fff0f0:#fff0f0;
  --hb-fff1f2:#fff1f2; --hb-fff3cd:#fff3cd; --hb-fff3e0:#fff3e0; --hb-fff3f3:#fff3f3; --hb-fff59d:#fff59d;
  --hb-fff5d6:#fff5d6; --hb-fff5f5:#fff5f5; --hb-fff7e6:#fff7e6; --hb-fff7ed:#fff7ed; --hb-fff7fb:#fff7fb;
  --hb-fff8e1:#fff8e1; --hb-fffbeb:#fffbeb; --hb-fffbf0:#fffbf0; --hb-fffef5:#fffef5;
  --hc-5eead4:#5eead4; --hc-67e8f9:#67e8f9; --hc-6ee7b7:#6ee7b7; --hc-7dd3fc:#7dd3fc; --hc-86efac:#86efac;
  --hc-90caf9:#90caf9; --hc-93c5fd:#93c5fd; --hc-99f6e4:#99f6e4; --hc-a5b4fc:#a5b4fc; --hc-a5d6a7:#a5d6a7;
  --hc-a5f3fc:#a5f3fc; --hc-a7f3d0:#a7f3d0; --hc-b0c4de:#b0c4de; --hc-b9c6d3:#b9c6d3; --hc-bbf7d0:#bbf7d0;
  --hc-bfdbfe:#bfdbfe; --hc-c3d6f5:#c3d6f5; --hc-c4b5fd:#c4b5fd; --hc-c5d8f9:#c5d8f9; --hc-c8d4e3:#c8d4e3;
  --hc-c9d6e8:#c9d6e8; --hc-cbd5e1:#cbd5e1; --hc-ccc:#ccc; --hc-ccd:#ccd; --hc-d0c4e8:#d0c4e8; --hc-d0d7de:#d0d7de;
  --hc-d0d7e8:#d0d7e8; --hc-d1d5db:#d1d5db; --hc-d5dce6:#d5dce6; --hc-d7dce4:#d7dce4; --hc-d8b4fe:#d8b4fe;
  --hc-dbe6f7:#dbe6f7; --hc-ddd6fe:#ddd6fe; --hc-dde:#dde; --hc-dde4f0:#dde4f0; --hc-dde5ef:#dde5ef; --hc-dde8f5:#dde8f5;
  --hc-e0e7ef:#e0e7ef; --hc-e2e8f0:#e2e8f0; --hc-e5e7eb:#e5e7eb; --hc-e5e7ef:#e5e7ef; --hc-e5eaf0:#e5eaf0;
  --hc-e9d5ff:#e9d5ff; --hc-e9ecef:#e9ecef; --hc-ecfeff:#ecfeff; --hc-eee:#eee; --hc-eef1f4:#eef1f4; --hc-eef1f7:#eef1f7;
  --hc-eef2f7:#eef2f7; --hc-eff6ff:#eff6ff; --hc-f0eeff:#f0eeff; --hc-f0f2f5:#f0f2f5; --hc-f0f2f6:#f0f2f6;
  --hc-f0f3f7:#f0f3f7; --hc-f0f4f8:#f0f4f8; --hc-f0fdf4:#f0fdf4; --hc-f1f5f9:#f1f5f9; --hc-f3d5e4:#f3d5e4;
  --hc-f4f6fb:#f4f6fb; --hc-f5b7b1:#f5b7b1; --hc-f5c6cb:#f5c6cb; --hc-f8fafc:#f8fafc; --hc-f9a8d4:#f9a8d4;
  --hc-fbcfe8:#fbcfe8; --hc-fca5a5:#fca5a5; --hc-fcd34d:#fcd34d; --hc-fda4af:#fda4af; --hc-fdba74:#fdba74;
  --hc-fde047:#fde047; --hc-fde68a:#fde68a; --hc-fdf4ff:#fdf4ff; --hc-fecdd3:#fecdd3; --hc-fed7aa:#fed7aa;
  --hc-ffb74d:#ffb74d; --hc-ffcc80:#ffcc80; --hc-ffe08a:#ffe08a; --hc-fff:#fff; --hc-fff8e1:#fff8e1;
  --ht-01579b:#01579b; --ht-0369a1:#0369a1; --ht-047857:#047857; --ht-065f46:#065f46; --ht-075985:#075985;
  --ht-0d47a1:#0d47a1; --ht-0d9488:#0d9488; --ht-0e7490:#0e7490; --ht-0f172a:#0f172a; --ht-0f766e:#0f766e;
  --ht-111:#111; --ht-134e4a:#134e4a; --ht-14532d:#14532d; --ht-155e75:#155e75; --ht-1565c0:#1565C0; --ht-15803d:#15803d;
  --ht-164e63:#164e63; --ht-166534:#166534; --ht-1a237e:#1a237e; --ht-1a2a3a:#1a2a3a; --ht-1a3a6e:#1a3a6e;
  --ht-1a3c6e:#1a3c6e; --ht-1a4fa8:#1a4fa8; --ht-1a56db:#1a56db; --ht-1a5ec8:#1a5ec8; --ht-1a73e8:#1a73e8;
  --ht-1b5e20:#1b5e20; --ht-1d4ed8:#1d4ed8; --ht-1e1b4b:#1e1b4b; --ht-1e293b:#1e293b; --ht-1e3a5f:#1e3a5f;
  --ht-1e3a8a:#1e3a8a; --ht-1e40af:#1e40af; --ht-1e429f:#1e429f; --ht-1f5fa8:#1f5fa8; --ht-222:#222; --ht-223:#223;
  --ht-2563eb:#2563eb; --ht-283593:#283593; --ht-2b6cb0:#2b6cb0; --ht-2e7d32:#2e7d32; --ht-333:#333; --ht-334:#334;
  --ht-334155:#334155; --ht-3730a3:#3730a3; --ht-37474f:#37474f; --ht-3b3654:#3b3654; --ht-445:#445; --ht-475569:#475569;
  --ht-4c1d95:#4c1d95; --ht-4f46e5:#4f46e5; --ht-500724:#500724; --ht-555:#555; --ht-556:#556; --ht-5a3a00:#5a3a00;
  --ht-5b21b6:#5b21b6; --ht-666:#666; --ht-667:#667; --ht-6a1b9a:#6a1b9a; --ht-6b21a8:#6b21a8; --ht-6d28d9:#6d28d9;
  --ht-78350f:#78350f; --ht-7a5b00:#7a5b00; --ht-7b1fa2:#7b1fa2; --ht-7c3aed:#7c3aed; --ht-7e22ce:#7e22ce;
  --ht-7f0000:#7f0000; --ht-7f1d1d:#7f1d1d; --ht-831843:#831843; --ht-854d0e:#854d0e; --ht-86198f:#86198f;
  --ht-8d4a00:#8d4a00; --ht-92400e:#92400e; --ht-9333ea:#9333ea; --ht-991b1b:#991b1b; --ht-9a3412:#9a3412;
  --ht-9d174d:#9d174d; --ht-9f1239:#9f1239; --ht-a16207:#a16207; --ht-b45309:#b45309; --ht-b71c1c:#b71c1c;
  --ht-b91c1c:#b91c1c; --ht-be185d:#be185d; --ht-c00:#c00; --ht-c0392b:#c0392b; --ht-c2185b:#c2185b; --ht-c2410c:#c2410c;
  --ht-c62828:#c62828; --ht-dc2626:#dc2626; --ht-e11d48:#e11d48;
  --ht-rgba-0-0-0-45:rgba(0,0,0,.45);
  color-scheme:light;
}
#btnThemeToggle,#btnHardReload{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:30px;}
html.ez-dark #btnHardReload,html.ez-dark #btnThemeToggle{background:#1f2937!important;color:#cbd8ea!important;border-color:#3d4b63!important;}
/* chg-has-change highlight & custom-ETF card head: hue-preserving token gen turns these pale-yellow backgrounds into an olive tint that clashes with the navy dark theme, so pin them to a neutral dark instead (regenerate-safe: keep these overrides in sync if dark_vars3.js reruns). */
html.ez-dark .chg-tbl tr.chg-has-change td{background:#131a24;}
html.ez-dark .chg-tbl tr.chg-has-change:hover td{background:#1b2331;}
html.ez-dark .etf-card.etf-card-custom .etf-card-head{background:#1b2331;}

/* ── Login Screen ────────────────────────────────────────────────────────── */
#loginScreen{position:fixed;inset:0;z-index:99999;display:flex;min-height:100vh;}
#loginScreen.hidden{display:none;}
.login-left{flex:1 1 50%;min-width:0;background:linear-gradient(160deg,#081320 0%,#0d2137 55%,#0a2744 100%);display:flex;flex-direction:column;align-items:stretch;padding:0;color:#fff;overflow-y:auto;transition:filter .3s ease;}
/* Logo + title header band */
.ll-header{display:flex;flex-direction:column;align-items:center;padding:24px 24px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.15);}
.ll-logo{width:84px;height:84px;margin-bottom:10px;filter:drop-shadow(0 0 14px rgba(55,100,174,.5));transition:filter .3s ease;}
#loginScreen.login-inverted .login-left{background:#000;filter:invert(1) hue-rotate(180deg);}
#loginScreen.login-inverted .ll-logo{filter:invert(1) hue-rotate(180deg) drop-shadow(0 0 14px rgba(55,100,174,.5));}
.ll-brand{display:flex;flex-direction:column;align-items:center;gap:3px;}
.login-left-title{font-size:18px;font-weight:800;line-height:1.3;letter-spacing:.5px;color:#fff;font-family:system-ui,-apple-system,sans-serif;text-align:center;}
.login-left-sub{font-size:10.5px;color:rgba(255,255,255,.52);line-height:1.5;text-align:center;}
/* Chart section */
.ll-chart{flex:1;padding:16px 20px 14px;display:flex;flex-direction:column;min-height:0;}
.login-right{position:relative;flex:1 1 50%;min-width:0;background:var(--hb-fff,#fff);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;justify-content:safe center;padding:48px 32px;overflow-y:auto;transition:filter .3s ease;}
.login-privacy-overlay{position:absolute;inset:0;z-index:50;background:var(--hb-fff,#fff);display:flex;flex-direction:column;}
.login-privacy-head{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--hc-e5eaf0,#e5eaf0);font-size:14px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);}
.login-privacy-back{flex:0 0 auto;background:none;border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:7px;color:#1565C0;font-size:12px;font-weight:600;padding:6px 12px;cursor:pointer;transition:all .15s;font-family:inherit;}
.login-privacy-back:hover{border-color:#1565C0;background:rgba(21,101,192,.06);}
.login-privacy-frame{flex:1;width:100%;border:none;}
#loginScreen.login-inverted .login-right{filter:invert(1) hue-rotate(180deg);}
.login-right-title{font-size:18px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);margin-bottom:6px;}
.login-right-sub{font-size:13px;color:#778;margin-bottom:28px;}
/* 示範面板吃掉右欄剩餘高度與寬度（隨視窗／分隔線拖曳動態縮放）；排在 Google 登入鈕之後的一般文件流，不會蓋住登入鈕。
   空間不足時保底 300px，改由右欄整欄捲動。 */
.login-demo-outer{position:relative;margin-bottom:20px;max-width:880px;width:100%;flex:1 1 auto;min-height:300px;max-height:900px;display:flex;flex-direction:column;}
.login-demo{position:relative;width:100%;background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:12px;overflow:hidden;transition:width .2s ease,box-shadow .2s ease;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;container-type:inline-size;}
.login-demo-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--hc-e5eaf0,#e5eaf0);}
.login-demo-tab{flex:1 1 33.33%;min-width:0;background:none;border:none;padding:9px 3px;font-size:11px;font-weight:700;color:#94a3b8;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;font-family:inherit;}
.login-demo-tab:hover{color:#1565C0;}
.login-demo-tab.active{color:#1565C0;border-bottom-color:#1565C0;}
.login-demo-tab[data-demo-tab="changes"]:hover{color:#1565C0;background:rgba(21,101,192,.06);}
.login-demo-tab[data-demo-tab="changes"].active{color:#1565C0;border-bottom-color:#1565C0;background:rgba(21,101,192,.09);}
.login-demo-tab[data-demo-tab="highdiv"]:hover{color:#d97706;background:rgba(217,119,6,.06);}
.login-demo-tab[data-demo-tab="highdiv"].active{color:#d97706;border-bottom-color:#d97706;background:rgba(217,119,6,.09);}
.login-demo-tab[data-demo-tab="overlap"]:hover{color:#7c3aed;background:rgba(124,58,237,.06);}
.login-demo-tab[data-demo-tab="overlap"].active{color:#7c3aed;border-bottom-color:#7c3aed;background:rgba(124,58,237,.09);}
.login-demo-tab[data-demo-tab="monthrank"]:hover{color:#059669;background:rgba(5,150,105,.06);}
.login-demo-tab[data-demo-tab="monthrank"].active{color:#059669;border-bottom-color:#059669;background:rgba(5,150,105,.09);}
.login-demo-tab[data-demo-tab="rookie"]:hover{color:#db2777;background:rgba(219,39,119,.06);}
.login-demo-tab[data-demo-tab="rookie"].active{color:#db2777;border-bottom-color:#db2777;background:rgba(219,39,119,.09);}
.login-demo-tab[data-demo-tab="signal"]:hover{color:#0891b2;background:rgba(8,145,178,.06);}
.login-demo-tab[data-demo-tab="signal"].active{color:#0891b2;border-bottom-color:#0891b2;background:rgba(8,145,178,.09);}
.login-demo-panel{padding:11px 12px;flex:1 1 0;min-height:0;overflow-y:auto;}
/* 面板夠寬時六個頁籤排成一列，省下一排高度給內容 */
@container (min-width:620px){.login-demo-tab{flex-basis:16.66%;font-size:12px;}}
.login-split-handle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:28px;height:28px;border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:50%;background:var(--hb-fff,#fff);cursor:ew-resize;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.18);z-index:40;touch-action:none;user-select:none;}
.login-split-handle:hover{background:#eef4ff;}
.login-split-handle.dragging{background:#dbeafe;}
.login-split-grip{font-size:13px;line-height:1;pointer-events:none;}
.login-left.col-collapsed,.login-right.col-collapsed{padding-left:0;padding-right:0;overflow:hidden;}
@media (max-width:640px){
  .login-split-handle.stack-mode{cursor:ns-resize;}
}
.login-demo-loading,.login-demo-empty{color:#94a3b8;font-size:12px;padding:14px 0;text-align:center;}
.login-demo-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px dashed var(--hc-e5eaf0,#e5eaf0);}
.login-demo-row:last-child{border-bottom:none;}
.login-demo-row-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1 auto;}
.login-demo-row-title{font-size:12px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.login-demo-row-sub{font-size:10.5px;color:#94a3b8;}
.login-demo-tag{flex:0 0 auto;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px;}
.login-demo-tag.add{background:#fdecea;color:#c0392b;}
.login-demo-tag.remove{background:#e8f6ee;color:#27ae60;}
.login-demo-multi-badge{display:inline-block;margin-left:5px;font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#eef2ff;color:#4338ca;vertical-align:middle;cursor:help;}
.login-demo-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex:0 0 auto;}
.login-demo-row-price{font-size:11px;color:#64748b;font-weight:600;line-height:1.2;}
.login-demo-price{font-size:19px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);line-height:1.2;}
.login-demo-pct{flex:0 0 auto;font-size:14px;font-weight:800;}
.login-demo-pct.up{color:#c0392b;}
.login-demo-pct.down{color:#27ae60;}
.login-demo-pct.highlight{color:#1565C0;}
.login-demo-chgline{font-size:12px;font-weight:700;line-height:1.2;}
.login-demo-chgline.up{color:#c0392b;}
.login-demo-chgline.down{color:#27ae60;}
.login-demo-date{font-size:9.5px;color:#94a3b8;line-height:1.2;}
.login-demo-head{font-size:11px;color:#64748b;margin-bottom:6px;}
.login-demo-head b{color:var(--ht-1a2a3a,#1a2a3a);}
.login-demo-bar-wrap{flex:1 1 auto;min-width:0;}
.login-demo-bar-track{height:5px;border-radius:3px;background:var(--hc-e5eaf0,#e5eaf0);margin-top:3px;overflow:hidden;}
.login-demo-bar-fill{height:100%;background:#1565C0;border-radius:3px;}
.login-demo-insight{margin-top:8px;font-size:10.5px;color:#64748b;line-height:1.5;background:var(--hb-fff,#fff);border-radius:8px;padding:7px 8px;}
.login-demo-asof{font-size:10px;color:#b0bac8;text-align:right;margin-top:2px;}
.login-demo-foot{margin-top:8px;font-size:11px;color:#94a3b8;text-align:center;}
.login-demo-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.login-demo-badge{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:10px;background:#f1f5f9;color:#475569;}
.login-demo-badge.up{background:#fdecea;color:#c0392b;}
.login-demo-badge.down{background:#e8f6ee;color:#27ae60;}
.login-demo-signal-wrap{position:relative;padding-right:26px;height:100%;display:flex;flex-direction:column;}
.login-demo-shuffle{position:absolute;top:0;right:0;width:22px;height:22px;border-radius:50%;border:1px solid var(--hc-e5eaf0,#e5eaf0);background:var(--hb-fff,#fff);color:#64748b;font-size:12px;line-height:20px;text-align:center;cursor:pointer;padding:0;font-family:inherit;}
.login-demo-shuffle:hover{color:#1565C0;border-color:#1565C0;}
.login-demo-shuffle.spinning{animation:loginDemoSpin .6s linear infinite;color:#1565C0;}
/* 登入頁示範圖表（成分異動／高息／重疊／當月績效／新秀） */
.login-demo-lock{margin-top:10px;font-size:11.5px;font-weight:700;color:#1565C0;background:rgba(21,101,192,.07);border:1px dashed #1565C0;border-radius:8px;padding:7px 10px;text-align:center;cursor:pointer;line-height:1.5;}
.login-demo-lock:hover{background:rgba(21,101,192,.13);}
.login-demo-lock,.dg-lock{position:relative;}
.ld-gsi-ov{position:absolute;inset:0;overflow:hidden;opacity:.011;z-index:2;text-align:left;line-height:0;}
.ld-gsi-ov>div{display:inline-block;vertical-align:top;transform-origin:0 0;}
.ld-card{background:var(--hb-fff,#fff);border-radius:8px;padding:6px 8px;margin-bottom:6px;}
.ld-sec{font-size:11px;font-weight:800;color:#64748b;margin:10px 0 5px;}
.ld-bar-row{display:flex;align-items:center;gap:8px;padding:3px 0;}
.ld-bar-label{flex:0 0 40%;min-width:0;font-size:11.5px;color:var(--ht-1a2a3a,#1a2a3a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;flex-direction:column;line-height:1.3;}
.ld-bar-label small,.ld-bar-val small{font-size:10px;color:#94a3b8;font-weight:500;}
.ld-bar-track{flex:1 1 auto;min-width:40px;height:9px;background:var(--hc-e5eaf0,#e5eaf0);border-radius:5px;overflow:hidden;}
.ld-bar-fill{display:block;height:100%;border-radius:5px;}
.ld-stack{display:flex;height:100%;}.ld-stack .ld-bar-fill{border-radius:0;}
.ld-bar-fill.up,.ld-bar-fill.add{background:#ef4444;}
.ld-bar-fill.down,.ld-bar-fill.remove{background:#22c55e;}
.ld-bar-fill.hi{background:linear-gradient(90deg,#fbbf24,#d97706);}
.ld-bar-fill.va{background:#3b82f6;}.ld-bar-fill.vb{background:#a855f7;}
.ld-bar-val{flex:0 0 auto;min-width:48px;text-align:right;font-size:11px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);display:flex;flex-direction:column;line-height:1.3;}
.ld-hi{color:#d97706;}.ld-add{color:#c0392b;}.ld-rm{color:#27ae60;}
.ld-legend{display:flex;gap:12px;justify-content:flex-end;font-size:10px;color:#94a3b8;margin-top:3px;}
.ld-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:3px;vertical-align:-1px;}
.ld-dot.add{background:#ef4444;}.ld-dot.remove{background:#22c55e;}
.ld-calc{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);background:rgba(217,119,6,.08);border:1px solid rgba(217,119,6,.25);border-radius:8px;padding:6px 10px;margin-bottom:6px;}
.ld-calc input[type=range]{flex:1 1 120px;min-width:100px;accent-color:#d97706;}
.ld-calc b{color:#d97706;min-width:54px;}
.ld-hd-row{border-bottom:1px dashed var(--hc-e5eaf0,#e5eaf0);padding:5px 0;}
.ld-hd-row .ld-bar-val{min-width:84px;}
.ld-ovchips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 4px;}
.ld-ovchip{border:1px solid var(--hc-e5eaf0,#e5eaf0);background:var(--hb-fff,#fff);color:#64748b;border-radius:14px;padding:3px 9px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;}
.ld-ovchip i{font-style:normal;color:#a855f7;margin:0 2px;}
.ld-ovchip:hover{border-color:#a855f7;color:#7c3aed;}
.ld-ovchip.on{background:#7c3aed;border-color:#7c3aed;color:#fff;}.ld-ovchip.on i{color:#e9d5ff;}
.ld-ovg{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--hb-fff,#fff);border-radius:10px;padding:8px 10px;margin:6px 0;}
.ld-ovg svg{flex:0 0 150px;width:150px;height:auto;}
.ld-ovg .bg{fill:none;stroke:var(--hc-e5eaf0,#e5eaf0);stroke-width:13;stroke-linecap:round;}
.ld-ovg .fg{fill:none;stroke-width:13;stroke-linecap:round;animation:ldGauge 1s ease-out;}
@keyframes ldGauge{from{stroke-dasharray:0 188.5;}}
.ld-ovg .pct{font-size:22px;font-weight:800;text-anchor:middle;}
.ld-ovg .cap{font-size:9.5px;fill:#94a3b8;text-anchor:middle;}
.ld-ovg .end{font-size:8px;fill:#cbd5e1;text-anchor:middle;}
.ld-ovv{flex:1 1 160px;min-width:0;}
.ld-ovv-t{font-size:16px;font-weight:800;}
.ld-ovv-d{font-size:11.5px;color:#64748b;margin-top:2px;}
.ld-ovv-s{font-size:11.5px;color:var(--ht-1a2a3a,#1a2a3a);margin-top:6px;line-height:1.55;}
.ld-ovins{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;margin-bottom:6px;}
.ld-ovin{background:var(--hb-fff,#fff);border-radius:8px;padding:6px 9px;display:flex;flex-direction:column;gap:1px;min-width:0;}
.ld-ovin span{font-size:10.5px;color:#94a3b8;font-weight:700;}
.ld-ovin b{font-size:13px;color:var(--ht-1a2a3a,#1a2a3a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ld-ovin small{font-size:10.5px;color:#64748b;}
.ld-ovvenn{background:var(--hb-fff,#fff);border-radius:10px;padding:6px 10px 4px;margin:0 0 6px;}
.ld-ovvenn-t{font-size:10.5px;color:#94a3b8;font-weight:700;}
.ld-venn{display:block;width:100%;max-width:260px;margin:2px auto 2px;}
.ld-venn .va{fill:rgba(59,130,246,.18);stroke:#3b82f6;stroke-width:1.5;}
.ld-venn .vb{fill:rgba(168,85,247,.18);stroke:#a855f7;stroke-width:1.5;}
.ld-venn .vn{font-size:18px;font-weight:800;text-anchor:middle;fill:var(--ht-1a2a3a,#1a2a3a);}
.ld-venn .vn.vo{fill:#7c3aed;}
.ld-venn .vl{font-size:9.5px;text-anchor:middle;fill:#94a3b8;}
.ld-bf-side small.more{color:#7c3aed;font-weight:800;}
.ld-bf-head{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:0 4px;font-size:10px;color:#94a3b8;margin-bottom:2px;}
.ld-bf-head span:nth-child(2){text-align:center;}
.ld-bf-head span:first-child{text-align:right;}
.ld-bf-row{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);align-items:center;gap:0 4px;padding:2px 0;}
.ld-bf-name{font-size:11px;font-weight:700;text-align:center;color:var(--ht-1a2a3a,#1a2a3a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ld-bf-side{display:flex;align-items:center;gap:4px;min-width:0;}
.ld-bf-side .ld-bar-track{min-width:0;}
.ld-bf-side small{flex:0 0 40px;font-size:10px;color:#64748b;}
.ld-bf-side.l{flex-direction:row;}.ld-bf-side.l small{text-align:right;}
.ld-bf-side.l .ld-bar-track{transform:scaleX(-1);}
.ld-mr{cursor:pointer;border-bottom:1px dashed var(--hc-e5eaf0,#e5eaf0);border-radius:6px;}
.ld-mr:hover,.ld-mr.open{background:rgba(5,150,105,.05);}
.ld-rank{flex:0 0 16px;font-size:11px;font-weight:800;color:#94a3b8;text-align:center;}
.ld-mr-spark{height:34px;padding:0 4px 4px 24px;}
.ld-spark{display:block;width:100%;height:100%;}
.ld-spark polyline.up{stroke:#ef4444;}.ld-spark polyline.down{stroke:#22c55e;}
.ld-spark-wait{font-size:10px;color:#94a3b8;}
.ld-mb{display:flex;align-items:stretch;gap:6px;height:86px;margin:2px 0 10px;padding:0 2px;}
.ld-mb-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;cursor:default;}
.ld-mb-col b{font-size:12px;font-weight:800;color:#db2777;line-height:1.3;}
.ld-mb-col i{display:block;width:70%;max-width:34px;border-radius:5px 5px 0 0;background:linear-gradient(180deg,#f472b6,#db2777);}
.ld-mb-col span{display:block;width:100%;text-align:center;font-size:11px;color:#94a3b8;border-top:1.5px solid var(--hc-e5eaf0,#e2e8f0);padding-top:3px;margin-top:0;}
.ld-mb-col.cur span{color:#db2777;font-weight:700;}
.ld-rk-spark{flex:0 0 72px;height:26px;display:flex;align-items:center;justify-content:center;}
.ld-rk-load{font-size:10px;padding:2px 6px;border-radius:10px;border:1px solid var(--hc-e5eaf0,#e5eaf0);background:var(--hb-fff,#fff);color:#db2777;cursor:pointer;font-family:inherit;}
/* 納入／剔除不是漲跌，與既有 .login-demo-tag 一樣固定紅／綠，不隨漲跌色設定互換 */
html.ez-updn-intl .ld-bar-fill.up{background:var(--ez-upc);}
html.ez-updn-intl .ld-bar-fill.down{background:var(--ez-dnc);}
html.ez-updn-intl .ld-spark polyline.up{stroke:var(--ez-upc);}html.ez-updn-intl .ld-spark polyline.down{stroke:var(--ez-dnc);}
.login-demo-viewsw{display:flex;gap:4px;margin-top:10px;flex:0 0 auto;}
.login-demo-viewsw button{flex:0 0 auto;font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px;border:1px solid var(--hc-e5eaf0,#e5eaf0);background:var(--hb-fff,#fff);color:#64748b;cursor:pointer;font-family:inherit;}
.login-demo-viewsw button.active{background:#0891b2;border-color:#0891b2;color:#fff;}
.login-demo-diag{margin-top:8px;}
.login-demo-chart-card{margin-top:10px;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;}
.login-demo-chart-daybtns{display:flex;gap:3px;flex-wrap:wrap;flex:0 0 auto;}
.login-demo-spark-wrap{position:relative;flex:1 1 auto;min-height:90px;margin-top:8px;}
.login-demo-spark-wrap canvas{width:100%;height:100%;display:block;}
.login-demo-chart-err{font-size:12px;color:#aaa;text-align:center;padding:8px 0;}
.login-demo-chart-stats{margin-top:8px;padding:6px 10px;background:var(--hb-fff,#fff);border-radius:8px;font-size:11px;display:flex;gap:5px 14px;flex-wrap:wrap;align-items:center;}
@keyframes loginDemoSpin{to{transform:rotate(360deg);}}
.login-gsi-row{display:flex;align-items:center;gap:10px;margin-bottom:24px;}
.pwa-install-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--hc-c5d8f9,#c5d8f9);background:var(--hb-f4f8ff,#f4f8ff);color:var(--ht-1a3a6e,#1a3a6e);cursor:pointer;flex-shrink:0;padding:0;transition:background .15s,transform .1s;}
.pwa-install-btn:hover{background:var(--hb-e8f0fe,#e8f0fe);}
.pwa-install-btn:active{transform:scale(.93);}
.pwa-install-btn.sm{width:30px;height:30px;border-radius:8px;}
.etf-ctrl button.pwa-install-btn{padding:0;border-color:var(--hc-c5d8f9,#c5d8f9);background:var(--hb-f4f8ff,#f4f8ff);color:var(--ht-1a3a6e,#1a3a6e);}
/* Market chart widget */
.mkt-tabs{display:flex;gap:5px;margin-bottom:8px;}
.mkt-tab{flex:1;padding:6px 2px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:7px;color:rgba(255,255,255,.5);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;}
.mkt-tab:hover{background:rgba(255,255,255,.1);color:#fff;}
.mkt-tab.active{background:rgba(55,100,174,.25);border-color:#3764AE;color:#7eb3ff;}
.mkt-sub-tabs{display:flex;gap:4px;margin-bottom:7px;}
.mkt-sub-tab{flex:1;padding:4px 2px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:5px;color:rgba(255,255,255,.38);font-size:11px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;}
.mkt-sub-tab:hover{background:rgba(255,255,255,.08);color:#fff;}
.mkt-sub-tab.active{background:rgba(140,198,64,.18);border-color:#8CC640;color:#b8e67a;}
.mkt-chart-wrap{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;}
.mkt-chart-wrap>div[id^="mkt-pnl-"]{flex:1;min-height:0;display:flex;flex-direction:column;}
.mkt-chart-info{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2px;min-height:20px;flex:0 0 auto;}
.mkt-ci-price{font-size:16px;font-weight:800;color:#fff;letter-spacing:.5px;}
.mkt-ci-chg{font-size:11px;font-weight:600;text-align:right;}
.mkt-chart-range{font-size:9.5px;margin-bottom:3px;letter-spacing:.3px;flex:0 0 auto;}
.mkt-chart-label{font-size:10px;color:rgba(255,255,255,.4);margin-bottom:4px;letter-spacing:.5px;text-transform:uppercase;flex:0 0 auto;}
.mkt-chart-canvas{position:relative;flex:1 1 auto;min-height:90px;margin-bottom:3px;}
.mkt-chart-time{font-size:10px;color:rgba(255,255,255,.35);margin-top:6px;display:flex;justify-content:space-between;align-items:center;}
.mkt-refresh-btn{background:none;border:1px solid rgba(255,255,255,.15);border-radius:5px;color:rgba(255,255,255,.35);font-size:10px;padding:2px 8px;cursor:pointer;transition:all .2s;font-family:inherit;}
.mkt-refresh-btn:hover{border-color:#8CC640;color:#8CC640;}
.mkt-toprow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.mkt-toprow .mkt-tabs{flex:1 1 auto;margin-bottom:0;min-width:0;}
.mkt-view-toggle-btn{flex:0 0 auto;background:none;border:1px solid rgba(255,255,255,.15);border-radius:7px;color:rgba(255,255,255,.5);font-size:11px;font-weight:600;padding:6px 8px;cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap;}
.mkt-view-toggle-btn:hover{border-color:#8CC640;color:#8CC640;}
.mkt-grid-view{display:none;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px;}
.mkt-grid-tile{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:11px 8px;text-align:center;transition:background .3s,border-color .3s;}
.mgt-name{font-size:11.5px;color:rgba(255,255,255,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.3px;}
.mgt-price{font-size:17px;font-weight:800;color:#fff;margin-top:5px;letter-spacing:.2px;}
.mgt-chg{font-size:12px;font-weight:700;margin-top:4px;}
@media(max-width:640px){
  #loginScreen{flex-direction:column;}
  .login-left{flex:none;max-height:58vh;}
  .ll-header{padding:16px 18px 14px;}
  .ll-logo{width:132px;height:132px;}
  .ll-chart{padding:12px 16px 10px;}
  .login-right{flex:1;padding:28px 20px;}
  .mkt-chart-canvas{min-height:70px;}
  .mkt-view-toggle-btn{font-size:10px;padding:5px 6px;}
  .mkt-grid-view{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));}
}
/* 視窗較矮（常見筆電瀏覽器扣掉工具列後的高度）時，縮減登入右欄的留白，
   避免整欄需要捲動而把「請登入」標題往上擠出視窗。 */
@media(max-height:820px){
  .login-right{padding:28px 32px;}
  .login-right-sub{margin-bottom:16px;}
  .login-gsi-row{margin-bottom:14px;}
  .login-demo-outer{margin-bottom:12px;}
  .lr-footer{padding-top:14px;}
}

/* ── App Container ───────────────────────────────────────────────────────── */
#appContainer{display:none;}
#appContainer.visible{display:block;width:100%;box-sizing:border-box;}

/* ── ETF App Styles (ported from NEWS-400.asp) ──────────────────────────── */
.etf-wrap{padding:12px 16px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;width:100%;box-sizing:border-box;}
.etf-tabs{display:flex;gap:1px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:0;border-bottom:2px solid var(--hc-c8d4e3,#c8d4e3);align-items:flex-end;width:100%;box-sizing:border-box;}
.etf-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.etf-title{font-size:16px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);}
.etf-sub{font-size:11px;color:#778;margin-top:2px;}
.etf-ctrl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.etf-ctrl button{padding:6px 12px;border:1px solid var(--hc-b9c6d3,#b9c6d3);border-radius:6px;background:var(--hb-fff,#fff);cursor:pointer;font-size:12px;}
.etf-ctrl button.primary{background:#1565C0;border-color:#1565C0;color:#fff;font-weight:700;}
.etf-ctrl button:disabled{opacity:.5;cursor:not-allowed;}
#etfStatus{font-size:12px;color:var(--ht-556,#556);min-width:180px;}

.tab-btn{padding:5px 12px;border:1px solid var(--hc-c8d4e3,#c8d4e3);border-bottom:none;border-radius:5px 5px 0 0;cursor:pointer;font-size:13px;font-weight:600;position:relative;margin-bottom:-2px;z-index:1;}
.tab-btn.active{z-index:3;border-bottom:2px solid var(--hc-fff,#fff);padding-bottom:7px;}
.tab-btn[data-tab="myetf"]        {background:var(--hb-dbeafe,#dbeafe);color:var(--ht-1e40af,#1e40af);border-color:var(--hc-93c5fd,#93c5fd);}
.tab-btn[data-tab="myetf"].active {background:#1e40af;color:#fff;border-color:#1e40af;border-bottom-color:#1e40af;}
.tab-btn[data-tab="mystock"]        {background:var(--hb-dcfce7,#dcfce7);color:var(--ht-166534,#166534);border-color:var(--hc-86efac,#86efac);}
.tab-btn[data-tab="mystock"].active {background:#166534;color:#fff;border-color:#166534;border-bottom-color:#166534;}
.skt-view-tabs{display:flex;gap:0;border-bottom:2px solid var(--hc-e2e8f0,#e2e8f0);margin-bottom:14px;}
.skt-view-tab{padding:7px 20px;font-size:13px;font-weight:600;border:none;background:none;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s;}
.skt-view-tab.active{color:var(--ht-1e3a5f,#1e3a5f);border-bottom-color:#1e3a5f;}
.skt-view-tab:hover:not(.active){color:var(--ht-1e3a5f,#1e3a5f);}
.tab-btn[data-tab="market"]        {background:var(--hb-ede9fe,#ede9fe);color:var(--ht-5b21b6,#5b21b6);border-color:var(--hc-c4b5fd,#c4b5fd);}
.tab-btn[data-tab="market"].active {background:#5b21b6;color:#fff;border-color:#5b21b6;border-bottom-color:#5b21b6;}
.tab-btn[data-tab="active"]        {background:var(--hb-ffe4e6,#ffe4e6);color:var(--ht-9f1239,#9f1239);border-color:var(--hc-fca5a5,#fca5a5);}
.tab-btn[data-tab="active"].active {background:#9f1239;color:#fff;border-color:#9f1239;border-bottom-color:#9f1239;}
.tab-btn[data-tab="rookie"]        {background:var(--hb-ffedd5,#ffedd5);color:var(--ht-c2410c,#c2410c);border-color:var(--hc-fdba74,#fdba74);}
.tab-btn[data-tab="rookie"].active {background:#c2410c;color:#fff;border-color:#c2410c;border-bottom-color:#c2410c;}
.tab-btn[data-tab="highdiv"]        {background:var(--hb-dcfce7,#dcfce7);color:var(--ht-166534,#166534);border-color:var(--hc-86efac,#86efac);}
.tab-btn[data-tab="highdiv"].active {background:#166534;color:#fff;border-color:#166534;border-bottom-color:#166534;}
.tab-btn[data-tab="overlap"]        {background:var(--hb-ccfbf1,#ccfbf1);color:var(--ht-0f766e,#0f766e);border-color:var(--hc-5eead4,#5eead4);}
.tab-btn[data-tab="overlap"].active {background:#0f766e;color:#fff;border-color:#0f766e;border-bottom-color:#0f766e;}
.tab-btn[data-tab="dividend"]        {background:var(--hb-fae8ff,#fae8ff);color:var(--ht-86198f,#86198f);border-color:#e879f9;}
.tab-btn[data-tab="dividend"].active {background:#86198f;color:#fff;border-color:#86198f;border-bottom-color:#86198f;}
.tab-btn[data-tab="perfrank"]        {background:var(--hb-fef9c3,#fef9c3);color:var(--ht-854d0e,#854d0e);border-color:var(--hc-fde047,#fde047);}
.tab-btn[data-tab="perfrank"].active {background:#854d0e;color:#fff;border-color:#854d0e;border-bottom-color:#854d0e;}
.tab-btn[data-tab="latestrank"]        {background:var(--hb-e0f2fe,#e0f2fe);color:var(--ht-075985,#075985);border-color:var(--hc-7dd3fc,#7dd3fc);}
.tab-btn[data-tab="latestrank"].active {background:#075985;color:#fff;border-color:#075985;border-bottom-color:#075985;}
.tab-btn[data-tab="changes"]        {background:var(--hb-fef3c7,#fef3c7);color:var(--ht-92400e,#92400e);border-color:var(--hc-fcd34d,#fcd34d);}
.tab-btn[data-tab="changes"].active {background:#92400e;color:#fff;border-color:#92400e;border-bottom-color:#92400e;}
.tab-btn[data-tab="portfolio"]        {background:var(--hb-ecfeff,#ecfeff);color:var(--ht-155e75,#155e75);border-color:var(--hc-67e8f9,#67e8f9);}
.tab-btn[data-tab="portfolio"].active {background:#155e75;color:#fff;border-color:#155e75;border-bottom-color:#155e75;}
.tab-btn[data-tab="skill"]        {background:var(--hb-faf5ff,#faf5ff);color:var(--ht-6b21a8,#6b21a8);border-color:var(--hc-d8b4fe,#d8b4fe);}
.tab-btn[data-tab="skill"].active {background:#6b21a8;color:#fff;border-color:#6b21a8;border-bottom-color:#6b21a8;}
/* 分析代理（Skill）分頁 */
.sk-view-tabs{display:flex;gap:1px;flex-wrap:wrap;align-items:flex-end;border-bottom:2px solid var(--hc-e2e8f0,#e2e8f0);margin-bottom:-2px;}
.sk-view-btn{padding:5px 14px;font-size:13px;font-weight:600;border:1px solid var(--hc-c8d4e3,#c8d4e3);border-bottom:none;border-radius:5px 5px 0 0;background:var(--hb-fff,#fff);color:#64748b;cursor:pointer;position:relative;margin-bottom:-2px;z-index:1;font-family:inherit;transition:background .15s,color .15s,border-color .15s;}
.sk-view-btn:hover{background:var(--hb-f1f5f9,#f1f5f9);}
.sk-view-btn.active{z-index:3;border-bottom:2px solid var(--hc-fff,#fff);padding-bottom:7px;}
.sk-view-btn[data-skview="own"]{background:var(--hb-faf5ff,#faf5ff);color:var(--ht-6b21a8,#6b21a8);border-color:var(--hc-d8b4fe,#d8b4fe);}
.sk-view-btn[data-skview="own"].active{background:#6b21a8;color:#fff;border-color:#6b21a8;border-bottom-color:#6b21a8;}
.sk-view-btn[data-skview="public"]{background:var(--hb-ecfdf5,#ecfdf5);color:var(--ht-047857,#047857);border-color:var(--hc-6ee7b7,#6ee7b7);}
.sk-view-btn[data-skview="public"].active{background:#047857;color:#fff;border-color:#047857;border-bottom-color:#047857;}
.sk-view-btn[data-skview="report"]{background:var(--hb-fffbeb,#fffbeb);color:var(--ht-b45309,#b45309);border-color:var(--hc-fcd34d,#fcd34d);}
.sk-view-btn[data-skview="report"].active{background:#b45309;color:#fff;border-color:#b45309;border-bottom-color:#b45309;}
.sk-row{display:flex;align-items:flex-start;gap:10px;padding:12px 8px;border-bottom:1px solid var(--hc-f0eeff,#f0eeff);cursor:pointer;border-radius:6px;}
.sk-row:hover{background:var(--hb-faf8ff,#faf8ff);}
.sk-sum{font-size:12px;color:#889;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:760px;}
.sk-pre{margin:6px 0 2px;padding:10px 12px;background:var(--hb-faf9ff,#faf9ff);border:1px solid var(--hc-e9d5ff,#e9d5ff);border-radius:8px;font-family:Consolas,ui-monospace,monospace;font-size:12px;line-height:1.7;color:var(--ht-3b3654,#3b3654);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;cursor:auto;}
.sk-act{padding:5px 9px;font-size:13px;border-radius:6px;cursor:pointer;white-space:nowrap;flex:0 0 auto;line-height:1;}
.sk-acts{display:flex;gap:6px;flex:0 0 auto;align-items:flex-start;margin-top:2px;}
/* 窄螢幕（手機）：按鈕移到內容下方獨立一列，避免列高被擠爆 */
@media (max-width:640px){
  .sk-row{flex-wrap:wrap;gap:8px;}
  .sk-acts{width:100%;justify-content:flex-end;gap:8px;margin-top:6px;padding-top:8px;border-top:1px dashed var(--hc-f0eeff,#f0eeff);}
  .sk-act{padding:7px 11px;font-size:14px;}
  .sk-sum{max-width:100%;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
}
.tab-btn[data-maintab="etf"]        {background:var(--hb-dbeafe,#dbeafe);color:var(--ht-1e40af,#1e40af);border-color:var(--hc-93c5fd,#93c5fd);}
.tab-btn[data-maintab="etf"].active {background:#1e40af;color:#fff;border-color:#1e40af;border-bottom-color:#1e40af;}
.tab-btn[data-maintab="trend"]        {background:var(--hb-fff7ed,#fff7ed);color:var(--ht-9a3412,#9a3412);border-color:var(--hc-fed7aa,#fed7aa);}
.tab-btn[data-maintab="trend"].active {background:#9a3412;color:#fff;border-color:#9a3412;border-bottom-color:#9a3412;}
.tab-btn[data-maintab="stock"]        {background:var(--hb-e0e7ff,#e0e7ff);color:var(--ht-3730a3,#3730a3);border-color:var(--hc-a5b4fc,#a5b4fc);}
.tab-btn[data-maintab="stock"].active {background:#3730a3;color:#fff;border-color:#3730a3;border-bottom-color:#3730a3;}
.tab-btn[data-tab="usstock"]        {background:var(--hb-e8eaf6,#e8eaf6);color:var(--ht-283593,#283593);border-color:#9fa8da;}
.tab-btn[data-tab="usstock"].active {background:#283593;color:#fff;border-color:#283593;border-bottom-color:#283593;}
.tab-btn[data-tab="jpstock"]        {background:var(--hb-fef2f2,#fef2f2);color:var(--ht-dc2626,#dc2626);border-color:var(--hc-fca5a5,#fca5a5);}
.tab-btn[data-tab="jpstock"].active {background:#dc2626;color:#fff;border-color:#dc2626;border-bottom-color:#dc2626;}
.tab-btn[data-tab="mktlookup"]        {background:var(--hb-ecfeff,#ecfeff);color:var(--ht-155e75,#155e75);border-color:#22d3ee;}
.tab-btn[data-tab="mktlookup"].active {background:#155e75;color:#fff;border-color:#155e75;border-bottom-color:#155e75;}
.tab-btn[data-tab="help"]        {background:var(--hb-f1f5f9,#f1f5f9);color:var(--ht-334155,#334155);border-color:var(--hc-cbd5e1,#cbd5e1);}
.tab-btn[data-tab="help"].active {background:#334155;color:#fff;border-color:#334155;border-bottom-color:#334155;}
.tab-btn[data-tab="pricing"]        {background:var(--hb-fdf2f8,#fdf2f8);color:var(--ht-9d174d,#9d174d);border-color:var(--hc-f9a8d4,#f9a8d4);}
.tab-btn[data-tab="pricing"].active {background:#9d174d;color:#fff;border-color:#9d174d;border-bottom-color:#9d174d;}
.tab-btn[data-tab="planadmin"]        {background:var(--hb-eff6ff,#eff6ff);color:var(--ht-1e3a8a,#1e3a8a);border-color:var(--hc-93c5fd,#93c5fd);}
.tab-btn[data-tab="planadmin"].active {background:#1e3a8a;color:#fff;border-color:#1e3a8a;border-bottom-color:#1e3a8a;}
/* Market lookup inner segment buttons */
.mklk-wrap{max-width:560px;margin:48px auto;padding:0 16px;}
.mklk-title{font-size:22px;font-weight:800;color:var(--ht-0f172a,#0f172a);text-align:center;margin-bottom:6px;}
.mklk-sub{font-size:13px;color:#64748b;text-align:center;margin-bottom:28px;}
.mklk-seg{display:flex;border:2px solid var(--hc-e2e8f0,#e2e8f0);border-radius:10px;overflow:hidden;margin-bottom:18px;}
.mklk-seg-btn{flex:1;padding:11px 8px;font-size:13px;font-weight:700;cursor:pointer;border:none;background:var(--hb-fff,#fff);color:#64748b;transition:background .15s,color .15s;font-family:inherit;}
.mklk-seg-btn+.mklk-seg-btn{border-left:2px solid var(--hc-e2e8f0,#e2e8f0);}
.mklk-seg-btn.tw.active{background:#166534;color:#fff;}
.mklk-seg-btn.us.active{background:#283593;color:#fff;}
.mklk-seg-btn.jp.active{background:#dc2626;color:#fff;}
.mklk-row{display:flex;gap:8px;margin-bottom:10px;}
.mklk-inp{flex:1;padding:13px 16px;border:2px solid var(--hc-e2e8f0,#e2e8f0);border-radius:10px;font-size:15px;outline:none;transition:border-color .15s;font-family:inherit;}
.mklk-inp:focus{border-color:#155e75;}
.mklk-btn{padding:13px 22px;background:#155e75;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s;font-family:inherit;white-space:nowrap;}
.mklk-btn:hover{background:#134e4a;}
.mklk-results{border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:10px;overflow:hidden;margin-top:14px;}
.mklk-result-row{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);transition:background .1s;}
.mklk-result-row:last-child{border-bottom:none;}
.mklk-result-row:hover{background:var(--hb-f0fdfa,#f0fdfa);}
.mklk-result-code{font-weight:700;font-size:12px;padding:2px 8px;border-radius:6px;font-family:monospace;background:var(--hb-e6f7f5,#e6f7f5);color:var(--ht-0f766e,#0f766e);white-space:nowrap;}
.mklk-result-code.us{background:var(--hb-e8eaf6,#e8eaf6);color:var(--ht-283593,#283593);}
.mklk-result-code.jp{background:var(--hb-fef2f2,#fef2f2);color:var(--ht-dc2626,#dc2626);}
.mklk-result-name{flex:1;font-size:13px;color:var(--ht-1e293b,#1e293b);}
.mklk-result-tag{font-size:10px;color:#94a3b8;white-space:nowrap;}
.mklk-status{font-size:13px;color:#64748b;text-align:center;padding:16px;}
/* Market sub-tabs（與主頁簽 .tab-btn 同風格） */
.mklk-subtabs{display:flex;gap:1px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:0;border-bottom:2px solid var(--hc-c8d4e3,#c8d4e3);align-items:flex-end;}
.mklk-subtab{padding:5px 14px;border:1px solid var(--hc-c8d4e3,#c8d4e3);border-bottom:none;border-radius:5px 5px 0 0;cursor:pointer;font-size:13px;font-weight:600;position:relative;margin-bottom:-2px;z-index:1;font-family:inherit;transition:background .15s,color .15s,border-color .15s;}
.mklk-subtab.active{z-index:3;border-bottom:2px solid var(--hc-fff,#fff);padding-bottom:7px;}
.mklk-subtab[data-mklksub="stock"]        {background:var(--hb-ecfeff,#ecfeff);color:var(--ht-155e75,#155e75);border-color:#22d3ee;}
.mklk-subtab[data-mklksub="stock"].active {background:#155e75;color:#fff;border-color:#155e75;border-bottom-color:#155e75;}
.mklk-subtab[data-mklksub="industry"]        {background:var(--hb-e0f2fe,#e0f2fe);color:var(--ht-075985,#075985);border-color:var(--hc-7dd3fc,#7dd3fc);}
.mklk-subtab[data-mklksub="industry"].active {background:#075985;color:#fff;border-color:#075985;border-bottom-color:#075985;}
.mklk-subtab[data-mklksub="index"]        {background:var(--hb-ccfbf1,#ccfbf1);color:var(--ht-0f766e,#0f766e);border-color:var(--hc-5eead4,#5eead4);}
.mklk-subtab[data-mklksub="index"].active {background:#0f766e;color:#fff;border-color:#0f766e;border-bottom-color:#0f766e;}
.mklk-subtab[data-mklksub="holder"]        {background:var(--hb-fef3c7,#fef3c7);color:var(--ht-92400e,#92400e);border-color:var(--hc-fcd34d,#fcd34d);}
.mklk-subtab[data-mklksub="holder"].active {background:#92400e;color:#fff;border-color:#92400e;border-bottom-color:#92400e;}
.mklk-subtab[data-mklksub="flow"]        {background:var(--hb-ede9fe,#ede9fe);color:var(--ht-5b21b6,#5b21b6);border-color:var(--hc-c4b5fd,#c4b5fd);}
.mklk-subtab[data-mklksub="flow"].active {background:#5b21b6;color:#fff;border-color:#5b21b6;border-bottom-color:#5b21b6;}
.mklk-subpanel{display:none;}.mklk-subpanel.active{display:block;}
/* TIP 指數總覽 */
.tip-ctrl{display:flex;flex-direction:column;gap:8px;padding:4px 0 12px;}
.tip-search-inp{padding:6px 12px;border:1px solid var(--hc-d1d5db,#d1d5db);border-radius:8px;font-size:13px;width:260px;outline:none;font-family:inherit;}
.tip-search-inp:focus{border-color:#0d9488;}
.tip-cat-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.tip-cat-label{font-size:12px;color:#64748b;font-weight:600;white-space:nowrap;}
.tip-cat-btn{padding:3px 12px;border:1px solid var(--hc-d1d5db,#d1d5db);border-radius:20px;font-size:12px;cursor:pointer;background:var(--hb-fff,#fff);color:var(--ht-555,#555);font-weight:600;transition:all .15s;}
.tip-cat-btn.active{background:#155e75;color:#fff;border-color:#155e75;}
.tip-cat-btn:hover:not(.active){background:var(--hb-f0fdfa,#f0fdfa);border-color:#0d9488;}
.tip-sort-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b;}
.tip-sort-btn{padding:3px 10px;border:1px solid var(--hc-d1d5db,#d1d5db);border-radius:5px;font-size:12px;cursor:pointer;background:var(--hb-fff,#fff);color:var(--ht-555,#555);font-weight:600;transition:all .15s;}
.tip-sort-btn.active{background:#0f766e;color:#fff;border-color:#0f766e;}
.tip-tbl{width:100%;border-collapse:collapse;font-size:13px;}
.tip-tbl th{padding:7px 8px;border-bottom:2px solid var(--hc-d0d7e8,#d0d7e8);background:var(--hb-f5f8ff,#f5f8ff);color:var(--ht-334,#334);font-weight:700;white-space:nowrap;text-align:left;cursor:pointer;user-select:none;position:sticky;top:0;z-index:1;}
.tip-excl{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#64748b;font-weight:600;cursor:pointer;margin-left:8px;user-select:none;}
/* 指數：市場總覽列與類股廣度 */
.tip-sum{display:flex;flex-wrap:wrap;gap:0;background:var(--hb-eff6ff,#eff6ff);border:1px solid var(--hc-bfdbfe,#bfdbfe);border-radius:10px;margin-bottom:8px;overflow:hidden;}
.tip-sum-item{flex:1;min-width:120px;padding:8px 14px;border-right:1px solid var(--hc-bfdbfe,#bfdbfe);cursor:pointer;transition:background .12s;}
.tip-sum-item:last-child{border-right:none;}
.tip-sum-item:hover{background:var(--hb-dbeafe,#dbeafe);}
.tip-sum-label{font-size:11px;color:var(--ht-1d4ed8,#1d4ed8);font-weight:600;white-space:nowrap;}
.tip-sum-val{font-size:15px;font-weight:800;color:var(--ht-1e293b,#1e293b);margin-top:2px;white-space:nowrap;}
.tip-sum-chg{font-size:12px;font-weight:700;margin-left:6px;}
.tip-breadth{font-size:12px;color:var(--ht-334155,#334155);background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:8px;padding:7px 12px;margin-bottom:10px;line-height:1.7;}
.tip-etf-chips{margin-top:3px;display:flex;gap:4px;flex-wrap:wrap;align-items:center;font-size:10px;color:#94a3b8;}
.tip-tbl th:hover{background:var(--hb-e8edf8,#e8edf8);}
.tip-tbl td{padding:7px 8px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);vertical-align:middle;}
.tip-tbl tbody tr:hover td{background:var(--hb-f0f9ff,#f0f9ff);}
.tip-up{color:var(--ht-b91c1c,#b91c1c);font-weight:600;}
.tip-dn{color:#16a34a;font-weight:600;}
.tip-flat{color:#94a3b8;}
.tip-code{display:inline-block;font-family:monospace;font-weight:700;font-size:11px;background:var(--hb-f0fdfa,#f0fdfa);color:var(--ht-0f766e,#0f766e);border:1px solid var(--hc-99f6e4,#99f6e4);border-radius:4px;padding:1px 5px;}
.tip-cat-badge{display:inline-block;font-size:11px;padding:1px 7px;border-radius:12px;background:var(--hb-e0f2fe,#e0f2fe);color:var(--ht-075985,#075985);white-space:nowrap;}
.tip-status{font-size:13px;color:#64748b;text-align:center;padding:20px;}
.tip-count{font-size:12px;color:#94a3b8;}
/* Industry panel */
.mklk-ind-wrap{padding:4px 0 20px;}
.mklk-ind-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.mklk-ind-title{font-size:15px;font-weight:700;color:var(--ht-0f172a,#0f172a);}
.mklk-ind-mktrow{display:flex;gap:6px;}
.mklk-ind-mkt{padding:5px 16px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:20px;background:var(--hb-fff,#fff);cursor:pointer;font-size:12px;font-weight:700;color:var(--ht-445,#445);font-family:inherit;transition:background .15s;}
.mklk-ind-mkt.active{background:#155e75;border-color:#155e75;color:#fff;}
/* 産業 view tabs */
.mklk-view-tabs{display:flex;gap:0;border-bottom:2px solid var(--hc-e2e8f0,#e2e8f0);margin-bottom:12px;}
.mklk-view-tab{padding:7px 18px;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;background:none;cursor:pointer;font-size:13px;font-weight:700;color:#64748b;font-family:inherit;transition:color .15s,border-color .15s;}
.mklk-view-tab:hover{color:var(--ht-0f766e,#0f766e);}
.mklk-view-tab.active{color:var(--ht-0f766e,#0f766e);border-bottom-color:#0f766e;}
.mklk-ind-sort-btn{padding:3px 10px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:6px;background:var(--hb-fff,#fff);cursor:pointer;font-size:11px;font-weight:600;color:var(--ht-445,#445);font-family:inherit;transition:background .12s;}
.mklk-ind-sort-btn:hover{background:var(--hb-f0f9ff,#f0f9ff);}
.mklk-ind-sort-btn.active{background:#0f766e;border-color:#0f766e;color:#fff;}
.mklk-ind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:7px;margin-bottom:18px;}
.mklk-ind-btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:8px 12px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:8px;background:var(--hb-f8fafc,#f8fafc);cursor:pointer;font-size:12px;color:var(--ht-1f5fa8,#1f5fa8);font-weight:700;height:74px;width:100%;box-sizing:border-box;transition:filter .15s,box-shadow .15s;line-height:1.4;font-family:inherit;overflow:hidden;}
.mklk-ind-btn:hover{filter:brightness(1.1);box-shadow:0 2px 8px rgba(0,0,0,.18);}
.mklk-ind-btn.active{box-shadow:0 0 0 3px #1565C0;z-index:1;}
.mklk-ind-btn small{font-size:10px;color:#889;font-weight:400;}
.ind-pct-tag{display:block;font-size:11px;font-weight:700;margin-top:2px;letter-spacing:.3px;}
.ind-pct-tag.up{color:var(--ht-dc2626,#dc2626);}
.ind-pct-tag.dn{color:#16a34a;}
.ind-pct-tag.flat{color:#64748b;}
/* 題材排行列 */
.mklk-theme-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px;padding:0 0 14px;}
/* 題材區塊 */
.heat-sort-bar{display:flex;gap:5px;align-items:center;margin-bottom:8px;}
.heat-sort-btn{padding:3px 10px;font-size:12px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:12px;background:var(--hb-fff,#fff);color:var(--ht-445,#445);cursor:pointer;font-family:inherit;transition:background .12s,color .12s,border-color .12s;white-space:nowrap;}
.heat-sort-btn:hover{background:var(--hb-f0f9ff,#f0f9ff);border-color:var(--hc-93c5fd,#93c5fd);}
.heat-sort-btn.active{background:#1e3a5f;border-color:#1e3a5f;color:#fff;}
.mklk-theme-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 12px;border-radius:8px;border:none;cursor:pointer;width:100%;min-width:0;min-height:72px;font-family:inherit;text-align:center;transition:opacity .15s,box-shadow .15s,transform .15s;line-height:1.3;}
.mklk-theme-btn:hover{opacity:.86;}
.mklk-theme-btn:focus-visible{outline:3px solid #2563eb;outline-offset:2px;}
.mklk-theme-btn.sel{box-shadow:inset 0 0 0 3px rgba(255,255,255,.75),0 0 0 3px #1e3a5f;transform:translateY(-1px);}
.mklk-theme-btn.up3{background:#7f1d1d;color:#fff;}
.mklk-theme-btn.up2{background:#b91c1c;color:#fff;}
.mklk-theme-btn.up1{background:#ef4444;color:#fff;}
.mklk-theme-btn.up0{background:var(--hb-fca5a5,#fca5a5);color:var(--ht-7f1d1d,#7f1d1d);}
.mklk-theme-btn.flat{background:var(--hb-f1f5f9,#f1f5f9);color:#64748b;}
.mklk-theme-btn.dn0{background:var(--hb-86efac,#86efac);color:var(--ht-14532d,#14532d);}
.mklk-theme-btn.dn1{background:#22c55e;color:#fff;}
.mklk-theme-btn.dn2{background:#15803d;color:#fff;}
.mklk-theme-btn.dn3{background:#14532d;color:#fff;}
.mklk-theme-btn .tb-name{font-size:13px;font-weight:700;}
.mklk-theme-btn .tb-pct{font-size:17px;font-weight:800;margin-top:5px;}
.mklk-theme-btn .tb-cnt{font-size:10px;opacity:.7;margin-top:3px;font-weight:400;}
.mklk-theme-btn .tb-dir{font-size:11px;margin-right:2px;}
.pot-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.pot-toolbar .heat-sort-bar{margin-bottom:0;}
.pot-data-status{font-size:11px;color:#64748b;white-space:nowrap;}
.pot-data-status.ok{color:var(--ht-047857,#047857);}
.pot-data-status.warn{color:var(--ht-b45309,#b45309);}
.pot-data-status.loading{color:var(--ht-1d4ed8,#1d4ed8);}
.pot-result-tools{display:flex;align-items:center;gap:6px;margin-left:auto;}
.pot-result-search{width:190px;max-width:34vw;padding:5px 9px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:6px;background:var(--hb-fff,#fff);color:var(--ht-0f172a,#0f172a);font:inherit;font-size:12px;}
.pot-clear-btn{padding:5px 10px;border:1px solid #94a3b8;border-radius:6px;background:var(--hb-fff,#fff);color:var(--ht-334155,#334155);font:inherit;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;}
.pot-clear-btn:hover{background:var(--hb-f1f5f9,#f1f5f9);}
.tsa:empty::after{content:" ↕";color:#94a3b8;font-size:10px;}
/* 產業大戶：左側清單 + 右側結果並排 */
.hld-ind-flex{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap;}
.hld-ind-flex .hld-ind-grid-col{flex:0 0 auto;width:480px;max-width:100%;}
.hld-ind-flex .hld-ind-grid-col .mklk-ind-grid{margin-bottom:0;}
.hld-ind-flex .hld-ind-res-col{flex:1 1 320px;min-width:280px;display:flex;flex-direction:column;}
.hld-ind-placeholder{border:1px dashed var(--hc-cbd5e1,#cbd5e1);border-radius:10px;padding:40px 20px;text-align:center;color:#94a3b8;font-size:13px;flex:1;}
#hldIndResult{display:none;flex-direction:column;flex:1;min-height:0;}
#hldIndResult .mklk-ind-tbl-wrap{flex:1;max-height:none;min-height:0;}
/* 大戶：快照狀態、解讀說明、洞察與訊號 */
.hld-guide{margin:10px 0 12px;}
.hld-snap-status{font-size:12px;color:var(--ht-475569,#475569);background:var(--hb-f0fdfa,#f0fdfa);border:1px solid var(--hc-99f6e4,#99f6e4);border-radius:8px;padding:8px 12px;line-height:1.7;}
.hld-snap-status b{color:var(--ht-0f766e,#0f766e);}
.hld-howto{margin-top:8px;font-size:12px;color:var(--ht-475569,#475569);background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:8px;padding:8px 12px;}
.hld-howto summary{cursor:pointer;font-weight:700;color:var(--ht-155e75,#155e75);user-select:none;}
.hld-howto div{margin-top:8px;line-height:1.85;}
.hld-howto b{color:var(--ht-0f172a,#0f172a);}
.hld-ins{font-size:12px;color:var(--ht-78350f,#78350f);background:var(--hb-fffbeb,#fffbeb);border:1px solid var(--hc-fde68a,#fde68a);border-radius:8px;padding:8px 12px;line-height:1.7;margin:10px 14px 0;}
.hld-sig{display:inline-block;padding:1px 8px;border-radius:99px;font-size:10px;font-weight:700;white-space:nowrap;}
.hld-sig.s-conc{background:var(--hb-fee2e2,#fee2e2);color:var(--ht-b91c1c,#b91c1c);}
.hld-sig.s-join{background:var(--hb-fce7f3,#fce7f3);color:var(--ht-9d174d,#9d174d);}
.hld-sig.s-dist{background:var(--hb-e0f2fe,#e0f2fe);color:var(--ht-0369a1,#0369a1);}
.hld-sig.s-exit{background:var(--hb-dcfce7,#dcfce7);color:var(--ht-15803d,#15803d);}
.hld-sig.s-none{background:var(--hb-f1f5f9,#f1f5f9);color:#94a3b8;}
/* Industry stock results */
.mklk-ind-res{border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:10px;overflow:hidden;}
.mklk-ind-res-hd{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--hb-f8fafc,#f8fafc);border-bottom:1px solid var(--hc-e5eaf0,#e5eaf0);}
.mklk-ind-res-title{font-size:13px;font-weight:700;color:var(--ht-0f172a,#0f172a);}
.mklk-ind-res-ctrl{display:flex;gap:6px;align-items:center;}
/* 產業新聞 */
.ind-news-tabs{display:flex;gap:6px;margin-bottom:8px;}
.ind-news-tab{padding:3px 12px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:6px;background:var(--hb-fff,#fff);cursor:pointer;font-size:11px;font-weight:700;font-family:inherit;color:var(--ht-555,#555);}
.ind-news-tab.active{background:#155e75;border-color:#155e75;color:#fff;}
.ind-news-list{display:none;}
.ind-news-list.active{display:block;}
.ind-news-item{padding:5px 0;border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);display:flex;flex-direction:column;gap:2px;}
.ind-news-item:last-child{border-bottom:none;}
.ind-news-title{font-size:12px;color:var(--ht-1e40af,#1e40af);text-decoration:none;line-height:1.4;}
.ind-news-title:hover{text-decoration:underline;}
.ind-news-meta{font-size:10px;color:#94a3b8;}
.ind-news-empty{font-size:12px;color:#94a3b8;padding:8px 0;}
.ind-news-btn{padding:2px 10px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:6px;background:var(--hb-f8fafc,#f8fafc);cursor:pointer;font-size:11px;font-family:inherit;color:var(--ht-555,#555);}
.ind-news-btn:hover{background:var(--hb-e8f0fe,#e8f0fe);}
.mklk-th-sort{cursor:pointer;user-select:none;white-space:nowrap;}
.mklk-th-sort:hover{background:var(--hb-f0f9ff,#f0f9ff);}
.mklk-th-sort::after{content:'';margin-left:4px;opacity:0.3;}
.mklk-th-sort.active.desc::after{content:'↓';opacity:1;}
.mklk-th-sort.active.asc::after{content:'↑';opacity:1;}
.mklk-ind-st{font-size:11px;color:#94a3b8;margin-left:6px;}
.mklk-ind-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.mklk-ind-tbl th,.mklk-ind-tbl td{padding:7px 10px;border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);text-align:left;white-space:nowrap;}
.mklk-ind-tbl th{background:var(--hb-fafbfe,#fafbfe);color:var(--ht-556,#556);font-weight:700;position:sticky;top:0;}
.mklk-ind-tbl th[data-tsort]{cursor:pointer;user-select:none;}
.mklk-ind-tbl th[data-tsort]:hover{background:var(--hb-eef2f8,#eef2f8);color:var(--ht-1e3a5f,#1e3a5f);}
.mklk-ind-tbl td.num,.mklk-ind-tbl th.num{text-align:right;font-family:Consolas,ui-monospace,monospace;}
.mklk-ind-tbl td.up{color:var(--ht-c0392b,#c0392b);font-weight:600;}.mklk-ind-tbl td.dn{color:#27ae60;font-weight:600;}
.mklk-ind-tbl tr:last-child td{border-bottom:none;}
.mklk-ind-tbl tr:hover td{background:var(--hb-f8fafc,#f8fafc);}
.mklk-ind-tbl-wrap{max-height:420px;overflow-y:auto;}
#twPotResult .mklk-ind-tbl-wrap,#usPotResult .mklk-ind-tbl-wrap,#jpPotResult .mklk-ind-tbl-wrap{overflow:auto;}
#twPotResult .mklk-ind-tbl th:nth-child(1),#twPotResult .mklk-ind-tbl td:nth-child(1),
#usPotResult .mklk-ind-tbl th:nth-child(1),#usPotResult .mklk-ind-tbl td:nth-child(1),
#jpPotResult .mklk-ind-tbl th:nth-child(1),#jpPotResult .mklk-ind-tbl td:nth-child(1){position:sticky;left:0;background:var(--hb-fff,#fff);z-index:2;}
#twPotResult .mklk-ind-tbl th:nth-child(2),#twPotResult .mklk-ind-tbl td:nth-child(2),
#usPotResult .mklk-ind-tbl th:nth-child(2),#usPotResult .mklk-ind-tbl td:nth-child(2),
#jpPotResult .mklk-ind-tbl th:nth-child(2),#jpPotResult .mklk-ind-tbl td:nth-child(2){position:sticky;left:92px;background:var(--hb-fff,#fff);z-index:2;box-shadow:1px 0 #e2e8f0;}
#twPotResult .mklk-ind-tbl th:nth-child(-n+2),#usPotResult .mklk-ind-tbl th:nth-child(-n+2),#jpPotResult .mklk-ind-tbl th:nth-child(-n+2){background:var(--hb-fafbfe,#fafbfe);z-index:4;}
@media(max-width:640px){
  .mklk-theme-row{grid-template-columns:repeat(auto-fit,minmax(94px,1fr));}
  .mklk-theme-btn{padding:8px;min-height:66px;}
  .pot-result-search{width:140px;max-width:48vw;}
}
.mklk-up{color:var(--ht-b71c1c,#b71c1c);font-weight:700;}
.mklk-dn{color:var(--ht-1b5e20,#1b5e20);font-weight:700;}
.mklk-brd-stats{display:flex;gap:10px;flex-wrap:wrap;padding:14px;}
.mklk-brd-stat{flex:1;min-width:88px;text-align:center;padding:10px 6px;border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:8px;background:var(--hb-f8fafc,#f8fafc);}
.mklk-brd-stat b{display:block;font-size:20px;line-height:1.3;}
.mklk-brd-stat span{font-size:11px;color:#64748b;}
.mklk-brd-movers{display:flex;gap:14px;flex-wrap:wrap;padding:0 14px 14px;}
.mklk-brd-col{flex:1;min-width:210px;}
.mklk-brd-col h4{font-size:12px;color:#64748b;margin:0 0 6px;font-weight:700;}
.mklk-brd-row{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;border-radius:6px;font-size:12.5px;cursor:pointer;}
.mklk-brd-row:nth-child(odd){background:var(--hb-f8fafc,#f8fafc);}
.mklk-brd-row:hover{background:var(--hb-e6f7f5,#e6f7f5);}
.mklk-chip-tw{display:inline-block;background:var(--hb-e6f7f5,#e6f7f5);color:var(--ht-0f766e,#0f766e);border-radius:5px;padding:1px 7px;font-size:11px;font-weight:700;font-family:monospace;cursor:pointer;}
.mklk-chip-tw:hover{background:#0f766e;color:#fff;}
.mklk-hint{font-size:12px;color:#94a3b8;text-align:center;}
/* 資金流向 */
.mf-view-btn{padding:5px 14px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);border-radius:8px;font-size:12px;font-weight:700;color:var(--ht-475569,#475569);cursor:pointer;}
.mf-view-btn:hover{background:var(--hb-fffbeb,#fffbeb);}
.mf-view-btn.active{background:#b45309;border-color:#b45309;color:#fff;}
.mf-src-btn{padding:4px 14px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);border-radius:16px;font-size:12px;font-weight:700;color:var(--ht-475569,#475569);cursor:pointer;}
.mf-src-btn:hover{background:var(--hb-f0fdfa,#f0fdfa);}
.mf-src-btn.active{background:#155e75;border-color:#155e75;color:#fff;}
.mf-period-btn{padding:4px 14px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);border-radius:7px;font-size:12px;font-weight:700;color:var(--ht-475569,#475569);cursor:pointer;}
.mf-period-btn:hover{background:var(--hb-eff6ff,#eff6ff);}
.mf-period-btn.active{background:#1e40af;border-color:#1e40af;color:#fff;}
.mf-col-title{font-size:13px;font-weight:800;color:var(--ht-334155,#334155);margin:4px 0 4px;padding-bottom:6px;border-bottom:2px solid var(--hc-e2e8f0,#e2e8f0);}
.mf-row{display:flex;align-items:center;gap:12px;padding:13px 6px;border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);cursor:pointer;}
.mf-row:hover{background:var(--hb-fafbff,#fafbff);}
.mf-det{padding:6px 6px 12px;background:var(--hb-fafbff,#fafbff);border-bottom:1px solid var(--hc-e5e7eb,#e5e7eb);cursor:auto;}
.mf-det .mklk-ind-tbl th{background:var(--hb-f1f5f9,#f1f5f9);}
.mf-left{flex:1;min-width:0;}
.mf-name{font-size:14px;font-weight:800;color:var(--ht-0f172a,#0f172a);display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.mf-sub{font-size:11px;color:#94a3b8;margin-top:4px;}
.mf-val{font-size:15px;font-weight:800;white-space:nowrap;min-width:92px;text-align:right;font-variant-numeric:tabular-nums;}
.mf-badge{font-size:10px;font-weight:700;border-radius:5px;padding:1px 8px;}
.mf-badge.b-buy{background:var(--hb-fee2e2,#fee2e2);color:var(--ht-b91c1c,#b91c1c);}
.mf-badge.b-sell{background:var(--hb-dcfce7,#dcfce7);color:var(--ht-15803d,#15803d);}
.mf-badge.b-sm{background:var(--hb-fff1f2,#fff1f2);color:var(--ht-e11d48,#e11d48);}
.mf-badge.b-smsell{background:var(--hb-f0fdf4,#f0fdf4);color:#16a34a;}
.mf-radar{font-size:12px;color:var(--ht-134e4a,#134e4a);background:var(--hb-f0fdfa,#f0fdfa);border:1px solid var(--hc-99f6e4,#99f6e4);border-radius:8px;padding:8px 12px;margin-bottom:12px;line-height:2;}
.mf-radar-chip{display:inline-block;margin:0 6px 4px 0;padding:2px 10px;border-radius:14px;font-weight:700;cursor:pointer;font-size:11px;}
.mf-radar-chip.rc-in{background:var(--hb-fee2e2,#fee2e2);color:var(--ht-b91c1c,#b91c1c);border:1px solid var(--hc-fca5a5,#fca5a5);}
.mf-radar-chip.rc-out{background:var(--hb-dcfce7,#dcfce7);color:var(--ht-15803d,#15803d);border:1px solid var(--hc-86efac,#86efac);}
.mf-radar-chip:hover{opacity:.75;}
.mf-spark{display:inline-flex;gap:3px;flex-shrink:0;}
.mf-slot{position:relative;width:9px;height:34px;display:inline-block;background:linear-gradient(to bottom,transparent 49%,var(--hb-e5e7eb,#e5e7eb) 49%,var(--hb-e5e7eb,#e5e7eb) 51%,transparent 51%);}
.mf-bar{position:absolute;left:1px;right:1px;border-radius:2px;}
/* 市場新聞（個股查詢頁） */
.mklk-mkt-news{margin-top:16px;padding-top:14px;border-top:1px solid var(--hc-e9ecef,#e9ecef);}
.mklk-mkt-news-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.mklk-mkt-news-title{font-size:11px;font-weight:700;color:#64748b;letter-spacing:.5px;text-transform:uppercase;}
.mklk-mkt-news-srcs{display:flex;gap:4px;}
.mklk-mkt-ns-btn{padding:2px 9px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:5px;background:var(--hb-fff,#fff);cursor:pointer;font-size:11px;font-weight:700;font-family:inherit;color:var(--ht-555,#555);transition:background .12s;}
.mklk-mkt-ns-btn.active{background:#155e75;border-color:#155e75;color:#fff;}
.mklk-mkt-news-body{max-height:340px;overflow-y:auto;}
.tab-btn[data-pfmarket="tw"]        {background:var(--hb-dcfce7,#dcfce7);color:var(--ht-166534,#166534);border-color:var(--hc-86efac,#86efac);}
.tab-btn[data-pfmarket="tw"].active {background:#166534;color:#fff;border-color:#166534;border-bottom-color:#166534;}
.tab-btn[data-pfmarket="us"]        {background:var(--hb-e0e7ff,#e0e7ff);color:var(--ht-3730a3,#3730a3);border-color:var(--hc-a5b4fc,#a5b4fc);}
.tab-btn[data-pfmarket="us"].active {background:#3730a3;color:#fff;border-color:#3730a3;border-bottom-color:#3730a3;}
.tab-btn[data-pfmarket="jp"]        {background:var(--hb-fef2f2,#fef2f2);color:var(--ht-dc2626,#dc2626);border-color:var(--hc-fca5a5,#fca5a5);}
.tab-btn[data-pfmarket="jp"].active {background:#dc2626;color:#fff;border-color:#dc2626;border-bottom-color:#dc2626;}
.tab-btn[data-tab="analyze"]        {background:var(--hb-ecfdf5,#ecfdf5);color:var(--ht-047857,#047857);border-color:var(--hc-6ee7b7,#6ee7b7);}
.tab-btn[data-tab="analyze"].active {background:#047857;color:#fff;border-color:#047857;border-bottom-color:#047857;}
/* ── 解析 Tab ── */
.az-wrap{padding:14px 16px 28px;font-family:system-ui,-apple-system,sans-serif;color:var(--ht-1e293b,#1e293b);}
.az-hd{margin-bottom:14px;}
.az-title{font-size:16px;font-weight:800;color:var(--ht-0f172a,#0f172a);}
.az-sub{font-size:12px;color:var(--ht-475569,#475569);line-height:1.55;margin-top:6px;max-width:900px;}
.az-src{font-size:11px;color:#64748b;margin-top:8px;}
.az-src a,.az-sub a{color:var(--ht-1565c0,#1565C0);font-weight:600;}
.az-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 12px;border-bottom:1px solid var(--hc-e2e8f0,#e2e8f0);padding-bottom:10px;}
.az-tab{border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);color:var(--ht-334155,#334155);padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s;}
.az-tab:hover{background:var(--hb-f1f5f9,#f1f5f9);border-color:#94a3b8;}
.az-tab.active{background:#047857;border-color:#047857;color:#fff;}
/* TWSE 各頁簽獨立色系 */
[data-aztab="price"]{background:var(--hb-e8f0fe,#e8f0fe);border-color:#1565C0;color:var(--ht-1565c0,#1565C0);}
[data-aztab="price"]:hover{background:var(--hb-d0e4fb,#d0e4fb);}
[data-aztab="price"].active{background:#1565C0;border-color:#1565C0;color:#fff;}
[data-aztab="chip"]{background:var(--hb-f3e8fb,#f3e8fb);border-color:#7b1fa2;color:var(--ht-7b1fa2,#7b1fa2);}
[data-aztab="chip"]:hover{background:var(--hb-e8d5f7,#e8d5f7);}
[data-aztab="chip"].active{background:#7b1fa2;border-color:#7b1fa2;color:#fff;}
[data-aztab="fund"]{background:var(--hb-e6f7f5,#e6f7f5);border-color:#0f766e;color:var(--ht-0f766e,#0f766e);}
[data-aztab="fund"]:hover{background:var(--hb-c9eeea,#c9eeea);}
[data-aztab="fund"].active{background:#0f766e;border-color:#0f766e;color:#fff;}
[data-aztab="idx"]{background:var(--hb-fef3e0,#fef3e0);border-color:#b45309;color:var(--ht-b45309,#b45309);}
[data-aztab="idx"]:hover{background:var(--hb-fde6b4,#fde6b4);}
[data-aztab="idx"].active{background:#b45309;border-color:#b45309;color:#fff;}
[data-aztab="etf"]{background:var(--hb-e0f4f9,#e0f4f9);border-color:#0891b2;color:var(--ht-0e7490,#0e7490);}
[data-aztab="etf"]:hover{background:var(--hb-bde8f3,#bde8f3);}
[data-aztab="etf"].active{background:#0891b2;border-color:#0891b2;color:#fff;}
[data-aztab="esg"]{background:var(--hb-eeedfb,#eeedfb);border-color:#4338ca;color:var(--ht-3730a3,#3730a3);}
[data-aztab="esg"]:hover{background:var(--hb-dddcf5,#dddcf5);}
[data-aztab="esg"].active{background:#4338ca;border-color:#4338ca;color:#fff;}
[data-aztab="risk"]{background:var(--hb-fde8e8,#fde8e8);border-color:#b91c1c;color:var(--ht-b91c1c,#b91c1c);}
[data-aztab="risk"]:hover{background:var(--hb-facaca,#facaca);}
[data-aztab="risk"].active{background:#b91c1c;border-color:#b91c1c;color:#fff;}
/* TPEx 各頁簽色系（對齊 TWSE 同名分類） */
#azTabsTpex [data-aztptab="price"]{background:var(--hb-e8f0fe,#e8f0fe);border-color:#1565C0;color:var(--ht-1565c0,#1565C0);}
#azTabsTpex [data-aztptab="price"]:hover{background:var(--hb-d0e4fb,#d0e4fb);}
#azTabsTpex [data-aztptab="price"].active{background:#1565C0;border-color:#1565C0;color:#fff;}
#azTabsTpex [data-aztptab="chip"]{background:var(--hb-f3e8fb,#f3e8fb);border-color:#7b1fa2;color:var(--ht-7b1fa2,#7b1fa2);}
#azTabsTpex [data-aztptab="chip"]:hover{background:var(--hb-e8d5f7,#e8d5f7);}
#azTabsTpex [data-aztptab="chip"].active{background:#7b1fa2;border-color:#7b1fa2;color:#fff;}
#azTabsTpex [data-aztptab="fund"]{background:var(--hb-e6f7f5,#e6f7f5);border-color:#0f766e;color:var(--ht-0f766e,#0f766e);}
#azTabsTpex [data-aztptab="fund"]:hover{background:var(--hb-c9eeea,#c9eeea);}
#azTabsTpex [data-aztptab="fund"].active{background:#0f766e;border-color:#0f766e;color:#fff;}
#azTabsTpex [data-aztptab="idx"]{background:var(--hb-fef3e0,#fef3e0);border-color:#b45309;color:var(--ht-b45309,#b45309);}
#azTabsTpex [data-aztptab="idx"]:hover{background:var(--hb-fde6b4,#fde6b4);}
#azTabsTpex [data-aztptab="idx"].active{background:#b45309;border-color:#b45309;color:#fff;}
#azTabsTpex [data-aztptab="etf"]{background:var(--hb-e0f4f9,#e0f4f9);border-color:#0891b2;color:var(--ht-0e7490,#0e7490);}
#azTabsTpex [data-aztptab="etf"]:hover{background:var(--hb-bde8f3,#bde8f3);}
#azTabsTpex [data-aztptab="etf"].active{background:#0891b2;border-color:#0891b2;color:#fff;}
#azTabsTpex [data-aztptab="esg"]{background:var(--hb-eeedfb,#eeedfb);border-color:#4338ca;color:var(--ht-3730a3,#3730a3);}
#azTabsTpex [data-aztptab="esg"]:hover{background:var(--hb-dddcf5,#dddcf5);}
#azTabsTpex [data-aztptab="esg"].active{background:#4338ca;border-color:#4338ca;color:#fff;}
#azTabsTpex [data-aztptab="risk"]{background:var(--hb-fde8e8,#fde8e8);border-color:#b91c1c;color:var(--ht-b91c1c,#b91c1c);}
#azTabsTpex [data-aztptab="risk"]:hover{background:var(--hb-facaca,#facaca);}
#azTabsTpex [data-aztptab="risk"].active{background:#b91c1c;border-color:#b91c1c;color:#fff;}
.az-tab-count{display:inline-block;margin-left:5px;padding:0 6px;border-radius:9px;background:rgba(0,0,0,.08);font-size:10px;font-weight:700;}
.az-tab.active .az-tab-count{background:rgba(255,255,255,.28);}
.az-search-wrap{margin:0 0 12px;}
.az-search{width:100%;max-width:420px;padding:7px 12px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:8px;font-size:12px;font-family:inherit;box-sizing:border-box;}
.az-search:focus{outline:none;border-color:#1565C0;box-shadow:0 0 0 2px rgba(21,101,192,.15);}
.az-panel{display:none;}.az-panel.active{display:block;}
.az-wrap.az-searching .az-panel{display:block!important;}
.az-wrap.az-searching .az-panel.az-empty{display:none!important;}
.az-tbl tbody tr.az-hide{display:none;}
.az-search-hit{background:var(--hb-fff59d,#fff59d);}
.az-card{background:var(--hb-fff,#fff);border:1px solid var(--hc-e5e7eb,#e5e7eb);border-radius:10px;padding:12px 14px;margin-bottom:12px;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.az-card h4{margin:0 0 8px;font-size:13px;color:var(--ht-0f172a,#0f172a);}
.az-hint{margin:0 0 8px;font-size:12px;color:#64748b;line-height:1.5;}
.az-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.az-tbl th,.az-tbl td{padding:6px 8px;border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);text-align:left;vertical-align:top;}
.az-tbl th{background:var(--hb-f8fafc,#f8fafc);color:var(--ht-475569,#475569);font-weight:700;}
.az-tbl th:first-child,.az-tbl td:first-child{display:none;}
/* 整列可點擊開啟分析後，隱藏「資料分析」按鈕欄（按鈕保留於 DOM 供列點擊取 data-azurl） */
.az-tbl th:last-child,.az-tbl td:last-child{display:none;}
.az-tbl tbody tr{cursor:pointer;}
.az-tbl tbody tr:hover td{background:var(--hb-f0fdfa,#f0fdfa);}
.az-api{color:var(--ht-1565c0,#1565C0);font-family:Consolas,ui-monospace,monospace;font-size:11px;word-break:break-all;}
.az-api:hover{text-decoration:underline;}
.az-pill{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;background:var(--hb-e0f2fe,#e0f2fe);color:var(--ht-0369a1,#0369a1);margin-right:4px;}
.az-act{display:inline-block;padding:4px 10px;border-radius:7px;background:#047857;color:#fff;font-size:11px;font-weight:700;border:none;cursor:pointer;white-space:nowrap;font-family:inherit;}
.az-act:hover{background:#065f46;}
.az-modal{position:fixed;inset:0;background:rgba(0,0,0,.38);display:none;align-items:center;justify-content:center;z-index:10200;padding:18px;}
.az-modal.active{display:flex;}
.az-modal-box{background:var(--hb-fff,#fff);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.25);max-width:min(1100px,96vw);width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;}
.az-modal-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--hb-f8fafc,#f8fafc);border-bottom:1px solid var(--hc-eef2f7,#eef2f7);flex-shrink:0;}
.az-modal-ttl{font-weight:800;color:var(--ht-223,#223);font-size:14px;flex:1;min-width:0;}
.az-modal-tools{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.az-modal-btn{border:none;background:none;cursor:pointer;color:var(--ht-556,#556);padding:5px 7px;border-radius:6px;font-size:19px;line-height:1;}
.az-modal-btn:hover{background:var(--hb-e2e8f0,#e2e8f0);color:var(--ht-223,#223);}
.az-modal.az-fs{padding:0;align-items:stretch;justify-content:stretch;}
.az-modal.az-fs .az-modal-box{flex:1;max-width:none;width:100%;max-height:none;border-radius:0;}
.az-modal.az-fs .az-modal-body{flex:1 1 auto;min-height:0;overflow:auto;}
.az-modal-body{flex:1;min-height:0;overflow:auto;padding:14px;}
.az-modal-url{font-size:11px;color:#64748b;font-family:Consolas,monospace;word-break:break-all;margin-bottom:10px;}
.az-modal-ctrl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px;}
.az-modal-ctrl select{padding:5px 8px;font-size:12px;border-radius:6px;border:1px solid var(--hc-cbd5e1,#cbd5e1);}
.az-modal-ctrl button{padding:5px 12px;border-radius:7px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);font-weight:700;cursor:pointer;font-size:12px;}
.az-modal-ctrl button.on{background:#047857;color:#fff;border-color:#047857;}
.az-modal-sum{font-size:12px;line-height:1.65;color:var(--ht-334155,#334155);background:var(--hb-f8fafc,#f8fafc);padding:8px 12px;border-radius:8px;border:1px solid var(--hc-eef2f7,#eef2f7);margin-bottom:10px;}
.az-modal-tbl-wrap{overflow:auto;}
.az-modal-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.az-modal-tbl th{padding:6px 8px;background:var(--hb-f8fafc,#f8fafc);color:var(--ht-475569,#475569);font-weight:700;border-bottom:1px solid var(--hc-e2e8f0,#e2e8f0);white-space:nowrap;text-align:left;}
.az-modal-tbl td{padding:6px 8px;border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);font-family:Consolas,monospace;font-size:11px;vertical-align:top;}
.ep-modal-box{max-width:min(720px,96vw);}
.az-modal-tbl th.az-sortable{cursor:pointer;user-select:none;}
.az-modal-tbl th.az-sortable:hover{background:var(--hb-eef2f7,#eef2f7);}
.az-modal-tbl th.az-sortable .az-sort-ar{color:#94a3b8;font-weight:400;margin-left:2px;}
.az-modal-tbl th.az-sortable.az-sort-on .az-sort-ar{color:var(--ht-1565c0,#1565C0);font-weight:800;}
@media(max-width:640px){
  /* 手機版：az-modal 一律撐滿整個視窗，避免小螢幕上內容被壓縮成一小塊 */
  .az-modal{padding:0;align-items:stretch;justify-content:stretch;}
  .az-modal-box{max-width:none;width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;box-sizing:border-box;}
  .ep-modal-box{max-width:none;}
  .az-modal-hd,.az-modal-body{width:100%;box-sizing:border-box;}
  .az-modal-tbl-wrap{width:100%;box-sizing:border-box;-webkit-overflow-scrolling:touch;}
  .az-modal-tbl{width:100%;table-layout:fixed;}
  .az-modal-tbl td.fh-name{word-break:break-word;}
}
/* 解析 outer tabs (TWSE / TPEx) */
.az-outer-tabs{display:flex;flex-wrap:wrap;gap:1px;padding:8px 12px 0;background:var(--hb-f8fafc,#f8fafc);border-bottom:2px solid var(--hc-e2e8f0,#e2e8f0);align-items:flex-end;}
.az-outer-glabel{font-size:10px;font-weight:700;color:#94a3b8;margin:0 4px 7px 2px;align-self:center;white-space:nowrap;}
.az-outer-sep{width:1px;height:20px;background:var(--hb-cbd5e1,#cbd5e1);margin:0 8px 7px;align-self:center;}
.az-outer-tab{padding:5px 14px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-bottom:none;border-radius:5px 5px 0 0;font-size:13px;font-weight:600;cursor:pointer;color:#64748b;background:var(--hb-fff,#fff);position:relative;margin-bottom:-2px;z-index:1;font-family:inherit;transition:background .15s,color .15s,border-color .15s;}
.az-outer-tab:hover{background:var(--hb-f1f5f9,#f1f5f9);}
.az-outer-tab.active{z-index:3;border-bottom:2px solid var(--hc-fff,#fff);padding-bottom:7px;}
.az-outer-tab[data-azmarket="twse"].active{background:#047857;color:#fff;border-color:#047857;border-bottom-color:#047857;}
.az-outer-tab[data-azmarket="tpex"].active{background:#0d9488;color:#fff;border-color:#0d9488;border-bottom-color:#0d9488;}
.az-outer-panel{display:none;}.az-outer-panel.active{display:block;}
.az-tpex-panel{display:none;}.az-tpex-panel.active{display:block;}
.az-wrap.tpex .az-api{color:var(--ht-0d9488,#0d9488);}
.az-wrap.tpex .az-act{background:#0d9488;}.az-wrap.tpex .az-act:hover{background:#0f766e;}
.az-wrap.tpex .az-src a,.az-wrap.tpex .az-sub a{color:var(--ht-0d9488,#0d9488);}
.az-wrap.tpex .az-pill{background:var(--hb-ccfbf1,#ccfbf1);color:var(--ht-0f766e,#0f766e);}
.az-outer-tab[data-azmarket="radar"].active{background:#9d174d;color:#fff;border-color:#9d174d;border-bottom-color:#9d174d;}
.az-outer-tab[data-azmarket="strategy"].active{background:#b45309;color:#fff;border-color:#b45309;border-bottom-color:#b45309;}
.az-outer-tab[data-azmarket="divcal"].active{background:#7c3aed;color:#fff;border-color:#7c3aed;border-bottom-color:#7c3aed;}
.az-outer-tab[data-azmarket="rev"].active{background:#2563eb;color:#fff;border-color:#2563eb;border-bottom-color:#2563eb;}
.az-outer-tab[data-azmarket="gm"].active{background:#65a30d;color:#fff;border-color:#65a30d;border-bottom-color:#65a30d;}
.az-outer-tab[data-azmarket="margin"].active{background:#dc2626;color:#fff;border-color:#dc2626;border-bottom-color:#dc2626;}
.az-outer-tab[data-azmarket="inst"].active{background:#4338ca;color:#fff;border-color:#4338ca;border-bottom-color:#4338ca;}
.az-outer-tab[data-azmarket="dt"].active{background:#ea580c;color:#fff;border-color:#ea580c;border-bottom-color:#ea580c;}
.az-outer-tab[data-azmarket="etfpop"].active{background:#0891b2;color:#fff;border-color:#0891b2;border-bottom-color:#0891b2;}
.az-outer-tab[data-azmarket="risk"].active{background:#b91c1c;color:#fff;border-color:#b91c1c;border-bottom-color:#b91c1c;}
.az-outer-tab[data-azmarket="lending"].active{background:#0369a1;color:#fff;border-color:#0369a1;border-bottom-color:#0369a1;}
.az-outer-tab[data-azmarket="dca"].active{background:#16a34a;color:#fff;border-color:#16a34a;border-bottom-color:#16a34a;}
.az-outer-tab[data-azmarket="newlisting"].active{background:#a21caf;color:#fff;border-color:#a21caf;border-bottom-color:#a21caf;}
.az-outer-tab[data-azmarket="qtrend"].active{background:#0f766e;color:#fff;border-color:#0f766e;border-bottom-color:#0f766e;}
#azOuterPanel-qtrend .rd-mkt-btn.active{background:#0f766e;border-color:#0f766e;color:#fff;}
#azOuterPanel-qtrend .rd-btn{background:#0f766e;}
#azOuterPanel-qtrend .rd-btn:hover{background:#115e59;}
#azOuterPanel-qtrend .rd-btn.ghost{background:var(--hb-fff,#fff);color:var(--ht-475569,#475569);border:1px solid var(--hc-cbd5e1,#cbd5e1);}
#azOuterPanel-qtrend .rd-preset:hover{background:var(--hb-f0fdfa,#f0fdfa);border-color:var(--hc-5eead4,#5eead4);}
#azOuterPanel-qtrend .rd-preset.active{background:#0f766e;border-color:#0f766e;color:#fff;}
#azOuterPanel-qtrend .rd-preset-desc{color:var(--ht-115e59,#115e59);background:var(--hb-f0fdfa,#f0fdfa);border-color:var(--hc-5eead4,#5eead4);}
#azOuterPanel-qtrend .rd-sum{background:var(--hb-f0fdfa,#f0fdfa);border-color:var(--hc-99f6e4,#99f6e4);}
#azOuterPanel-qtrend .rd-sum-item{border-right-color:var(--hc-99f6e4,#99f6e4);}
#azOuterPanel-qtrend .rd-sum-label{color:var(--ht-115e59,#115e59);}
#azOuterPanel-qtrend .rd-sum-val{color:var(--ht-134e4a,#134e4a);}
#azOuterPanel-qtrend .rd-tbl th.on{background:var(--hb-ccfbf1,#ccfbf1);color:var(--ht-115e59,#115e59);}
#azOuterPanel-qtrend .rd-tbl th:nth-child(2),#azOuterPanel-qtrend .rd-tbl td:nth-child(2){text-align:left;}
#azOuterPanel-qtrend .rd-tbl th:last-child,#azOuterPanel-qtrend .rd-tbl td:last-child{text-align:left;}
.qt-tag{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:1px 6px;white-space:nowrap;}
.qt-tag.hot{background:var(--hb-fee2e2,#fee2e2);color:var(--ht-991b1b,#991b1b);}
.qt-tag.acc{background:var(--hb-ffedd5,#ffedd5);color:var(--ht-9a3412,#9a3412);}
.qt-tag.out{background:var(--hb-dcfce7,#dcfce7);color:var(--ht-166534,#166534);}
.qt-tag.nor{background:var(--hb-f1f5f9,#f1f5f9);color:var(--ht-475569,#475569);}
/* 我的策略 chips（策略選股） */
.st-my-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 2px;}
.st-my-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--hc-fcd34d,#fcd34d);border-radius:14px;background:var(--hb-fffbeb,#fffbeb);font-size:12px;font-weight:700;color:var(--ht-92400e,#92400e);cursor:pointer;}
.st-my-chip:hover{background:var(--hb-fef3c7,#fef3c7);}
.st-my-chip .cnt{font-weight:400;color:var(--ht-b45309,#b45309);font-size:11px;}
.st-my-chip .hit{font-weight:700;color:var(--ht-dc2626,#dc2626);font-size:11px;}
.st-my-weekly{margin-left:auto;padding:4px 10px;border:1px dashed var(--hc-fcd34d,#fcd34d);border-radius:14px;background:transparent;font-size:12px;font-weight:700;color:var(--ht-b45309,#b45309);cursor:pointer;}
.st-my-weekly:hover{background:var(--hb-fffbeb,#fffbeb);}
.st-my-chip .del{color:var(--ht-b45309,#b45309);font-weight:400;font-size:13px;padding:0 1px;}
.st-my-chip .del:hover{color:var(--ht-dc2626,#dc2626);}
/* ── 策略選股 ── */
.st-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.st-tab{padding:6px 14px;border-radius:20px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);font-size:12.5px;font-weight:700;color:var(--ht-334155,#334155);cursor:pointer;white-space:nowrap;}
.st-tab:hover{background:var(--hb-fffbeb,#fffbeb);border-color:#f59e0b;}
.st-tab.active{background:#b45309;border-color:#b45309;color:#fff;}
.st-tab-badge{margin-left:4px;font-size:10.5px;font-weight:800;color:var(--ht-dc2626,#dc2626);}
.st-tab.active .st-tab-badge{color:#ffe4a3;}
.st-sec{margin-bottom:14px;}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:8px;}
.st-sub{grid-column:1/-1;font-size:12px;font-weight:800;color:var(--ht-92400e,#92400e);margin:6px 0 0;}
.st-sub:first-child{margin-top:0;}
.st-card{border:1px solid var(--hc-e2e8f0,#e2e8f0);background:var(--hb-fff,#fff);border-radius:10px;padding:10px 12px;cursor:pointer;text-align:center;transition:all .12s;user-select:none;}
.st-card:hover{border-color:#f59e0b;background:var(--hb-fffbeb,#fffbeb);}
.st-card.on{border-color:#b45309;background:#b45309;color:#fff;box-shadow:0 2px 8px rgba(180,83,9,.25);}
.st-card .st-lbl{font-size:13px;font-weight:700;}
.st-card .st-cnt{font-size:11px;color:#94a3b8;margin-top:4px;}
.st-card.on .st-cnt{color:rgba(255,255,255,.85);}
.st-card.dis{opacity:.45;cursor:not-allowed;}
.st-bar{display:flex;align-items:center;gap:10px;background:var(--hb-fffbeb,#fffbeb);border:1px solid var(--hc-fde68a,#fde68a);border-radius:10px;padding:10px 14px;margin:6px 0 12px;font-size:13px;font-weight:700;color:var(--ht-78350f,#78350f);flex-wrap:wrap;}
/* ── 解析：目錄應用提示 ── */
.az-usehint{display:block;margin-top:3px;font-size:11px;color:var(--ht-0e7490,#0e7490);line-height:1.5;}
.az-usehint::before{content:'💡 ';}
/* ── 解析：分析 Modal 強化 ── */
.az-insight{background:var(--hb-eff6ff,#eff6ff);border:1px solid var(--hc-bfdbfe,#bfdbfe);border-radius:8px;padding:9px 12px;font-size:12px;color:var(--ht-1e3a8a,#1e3a8a);line-height:1.65;margin-bottom:10px;}
.az-insight b{color:var(--ht-1d4ed8,#1d4ed8);}
.az-keyins{background:var(--hb-fffbeb,#fffbeb);border:1px solid var(--hc-fde68a,#fde68a);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--ht-78350f,#78350f);line-height:1.7;margin-bottom:10px;}
#azModalFilter{padding:5px 9px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:6px;font-size:12px;width:170px;}
.az-modal-tbl td.az-pos{color:var(--ht-b91c1c,#b91c1c);font-weight:700;}
.az-modal-tbl td.az-neg{color:var(--ht-15803d,#15803d);font-weight:700;}
/* ── 選股雷達 ── */
.rd-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px;}
.rd-title{font-size:15px;font-weight:800;color:var(--ht-0f172a,#0f172a);}
.rd-mkt-btn{padding:5px 14px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);border-radius:8px;font-size:12px;font-weight:700;color:var(--ht-475569,#475569);cursor:pointer;}
.rd-mkt-btn:hover{background:var(--hb-f1f5f9,#f1f5f9);}
.rd-mkt-btn.active{background:#9d174d;border-color:#9d174d;color:#fff;}
.rd-desc{font-size:12px;color:#64748b;line-height:1.6;margin:6px 0 10px;}
.rd-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.rd-preset{padding:5px 12px;border-radius:20px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);font-size:12px;font-weight:700;color:var(--ht-334155,#334155);cursor:pointer;}
.rd-preset:hover{background:var(--hb-fdf2f8,#fdf2f8);border-color:var(--hc-f9a8d4,#f9a8d4);}
.rd-preset.active{background:#9d174d;border-color:#9d174d;color:#fff;}
.rd-preset-desc{font-size:12px;color:var(--ht-9d174d,#9d174d);background:var(--hb-fdf2f8,#fdf2f8);border:1px dashed var(--hc-f9a8d4,#f9a8d4);border-radius:8px;padding:6px 10px;margin-bottom:10px;line-height:1.6;}
.rd-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:10px;padding:10px 12px;margin-bottom:10px;}
.rd-f{display:flex;flex-direction:column;gap:3px;}
.rd-f label,.rd-f .rd-lbl{font-size:11px;font-weight:700;color:var(--ht-475569,#475569);}
.rd-f input{width:92px;padding:5px 8px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:6px;font-size:12px;}
.rd-f.kw input{width:130px;}
.rd-chk{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ht-334155,#334155);font-weight:600;padding-bottom:6px;cursor:pointer;}
.rd-btn{padding:6px 14px;border-radius:7px;border:none;background:#9d174d;color:#fff;font-weight:700;font-size:12px;cursor:pointer;}
.rd-btn:hover{background:#831843;}
.rd-btn.ghost{background:var(--hb-fff,#fff);color:var(--ht-475569,#475569);border:1px solid var(--hc-cbd5e1,#cbd5e1);}
.rd-btn.ghost:hover{background:var(--hb-f1f5f9,#f1f5f9);}
.rd-sum{display:flex;gap:0;flex-wrap:wrap;background:var(--hb-fdf2f8,#fdf2f8);border:1px solid var(--hc-fbcfe8,#fbcfe8);border-radius:10px;margin-bottom:10px;overflow:hidden;}
.rd-sum-item{flex:1;min-width:105px;padding:8px 14px;border-right:1px solid var(--hc-fbcfe8,#fbcfe8);}
.rd-sum-item:last-child{border-right:none;}
/* 融資融券：大盤信用溫度計 */
.mgmk{border:1px solid var(--hc-fecdd3,#fecdd3);background:var(--hb-fff,#fff);border-radius:12px;padding:10px 12px;margin:8px 0 6px;}
.mgmk-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.mgmk-title{font-size:13px;font-weight:800;color:var(--ht-991b1b,#991b1b);}
.mgmk-date{font-size:11px;color:var(--ht-667,#667);}
.mgmk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.mgmk-grid3{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px;}
.mgmk-sub{font-size:10px;color:var(--ht-667,#667);margin-top:2px;line-height:1.4;}
.mgmk-zone{display:inline-block;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;margin-left:4px;border:1px solid currentColor;}
.mgmk-zone.z-crit{color:#b91c1c;background:#fee2e2;} .mgmk-zone.z-warn{color:#b45309;background:#fef3c7;} .mgmk-zone.z-ok{color:#475569;background:#f1f5f9;} .mgmk-zone.z-hi{color:#1d4ed8;background:#dbeafe;}
html.ez-dark .mgmk-zone{background:transparent;}
.mgy-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--ht-475569,#475569);margin:4px 0 2px;}
.mgy-leg span{display:inline-flex;align-items:center;gap:4px;}
.mgh-ref{font-size:10px;font-weight:600;color:var(--ht-667,#667);margin-left:auto;}
.mgmk-tile{background:var(--hb-fef2f2,#fef2f2);border-radius:8px;padding:8px 10px;min-width:0;}
.mgmk-lbl{font-size:11px;color:var(--ht-667,#667);font-weight:600;}
.mgmk-val{font-size:18px;font-weight:800;color:var(--ht-1e293b,#1e293b);margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mgmk-unit{font-size:11px;font-weight:600;color:var(--ht-667,#667);margin-left:2px;}
.mgmk-chg{font-size:11px;margin-top:2px;font-variant-numeric:tabular-nums;color:var(--ht-667,#667);}
.mgmk-note{font-size:11px;color:var(--ht-667,#667);margin-top:8px;line-height:1.5;}
@media(max-width:640px){ .mgmk-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .mgmk-val{font-size:16px;} .mgmk-grid3 .mgmk-tile:last-child{grid-column:1/-1;} }
.rd-sum-label{font-size:11px;color:var(--ht-9d174d,#9d174d);font-weight:600;}
.rd-sum-val{font-size:15px;font-weight:800;color:var(--ht-500724,#500724);margin-top:2px;white-space:nowrap;}
@media(max-width:640px){
  .rd-sum-item{flex:1 1 45%;min-width:0;}
  .rd-sum-val{white-space:normal;word-break:break-word;}
}
.rd-tbl-wrap{overflow:auto;border:1px solid var(--hc-e5e7eb,#e5e7eb);border-radius:10px;max-height:70vh;}
.rd-tbl{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap;}
.rd-tbl th{position:sticky;top:0;z-index:1;background:var(--hb-f8fafc,#f8fafc);color:var(--ht-475569,#475569);font-weight:700;padding:7px 9px;border-bottom:2px solid var(--hc-e2e8f0,#e2e8f0);text-align:right;cursor:pointer;user-select:none;}
.rd-tbl th:nth-child(1),.rd-tbl th:nth-child(2){text-align:left;}
.rd-tbl th:hover{background:var(--hb-f1f5f9,#f1f5f9);}
.rd-tbl th.on{background:var(--hb-fce7f3,#fce7f3);color:var(--ht-9d174d,#9d174d);}
.rd-tbl td{padding:6px 9px;border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);text-align:right;font-variant-numeric:tabular-nums;}
.rd-tbl td:nth-child(1),.rd-tbl td:nth-child(2){text-align:left;}
.rd-tbl tbody tr:hover td{background:var(--hb-fdf2f8,#fdf2f8);}
.rd-score{display:inline-block;min-width:34px;text-align:center;padding:2px 7px;border-radius:99px;font-weight:800;font-size:11px;}
.rd-up{color:var(--ht-b91c1c,#b91c1c);font-weight:700;}
.rd-dn{color:var(--ht-15803d,#15803d);font-weight:700;}
.rd-status{font-size:12px;color:#64748b;padding:14px;text-align:center;line-height:1.7;}
/* ── ETF 人氣：頁級 cyan 主題（不影響其他解析子頁）── */
#azOuterPanel-etfpop .rd-mkt-btn.active{background:#0891b2;border-color:#0891b2;color:#fff;}
#azOuterPanel-etfpop .rd-btn{background:#0891b2;}
#azOuterPanel-etfpop .rd-btn:hover{background:#0e7490;}
#azOuterPanel-etfpop .rd-btn.ghost{background:var(--hb-fff,#fff);color:var(--ht-475569,#475569);border:1px solid var(--hc-cbd5e1,#cbd5e1);}
#azOuterPanel-etfpop .rd-btn.ghost:hover{background:var(--hb-ecfeff,#ecfeff);}
#azOuterPanel-etfpop .rd-sum{background:var(--hb-ecfeff,#ecfeff);border-color:var(--hc-a5f3fc,#a5f3fc);}
#azOuterPanel-etfpop .rd-sum-item{border-right-color:var(--hc-a5f3fc,#a5f3fc);}
#azOuterPanel-etfpop .rd-sum-label{color:var(--ht-0e7490,#0e7490);}
#azOuterPanel-etfpop .rd-sum-val{color:var(--ht-164e63,#164e63);}
#azOuterPanel-etfpop .rd-tbl th.on{background:var(--hb-cffafe,#cffafe);color:var(--ht-0e7490,#0e7490);}
#azOuterPanel-etfpop .rd-tbl tbody tr:hover td{background:var(--hb-f0fdfa,#f0fdfa);}
#azOuterPanel-etfpop .ep-desc{margin:4px 0 8px;font-size:12px;color:#64748b;}
#azOuterPanel-etfpop .ep-desc>summary{cursor:pointer;font-weight:600;color:var(--ht-0e7490,#0e7490);list-style:none;user-select:none;}
#azOuterPanel-etfpop .ep-desc>summary::-webkit-details-marker{display:none;}
#azOuterPanel-etfpop .ep-desc>summary::before{content:'▸ ';font-size:10px;}
#azOuterPanel-etfpop .ep-desc[open]>summary::before{content:'▾ ';}
#azOuterPanel-etfpop .ep-desc .ep-desc-body{margin-top:6px;line-height:1.65;color:#64748b;}
#azOuterPanel-etfpop .ep-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:0;margin:0 0 8px;background:transparent;border:none;border-radius:0;}
#azOuterPanel-etfpop .ep-filters .rd-f{flex-direction:row;align-items:center;gap:6px;}

/* ── 說明 Tab ─────────────────────────────────────────────────────────── */
.help-wrap{padding:14px 16px 32px;font-family:system-ui,-apple-system,sans-serif;color:var(--ht-1e293b,#1e293b);max-width:1000px;}
.help-intro{background:var(--hb-eff6ff,#eff6ff);border:1px solid var(--hc-bfdbfe,#bfdbfe);border-radius:10px;padding:14px 16px;margin-bottom:14px;font-size:12.5px;line-height:1.7;color:var(--ht-1e3a5f,#1e3a5f);}
.help-intro h4{margin:0 0 6px;font-size:14px;color:var(--ht-1e40af,#1e40af);}
.help-tools-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.help-tool-btn{font-size:11.5px;font-weight:700;padding:5px 12px;border:1px solid #1d4ed8;border-radius:999px;background:var(--hb-fff,#fff);color:var(--ht-1d4ed8,#1d4ed8);cursor:pointer;white-space:nowrap;font-family:inherit;}
.help-tool-btn:hover{background:var(--hb-dbeafe,#dbeafe);}
.help-faq-new-badge{display:none;margin-left:5px;padding:1px 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:10.5px;font-weight:800;vertical-align:1px;}
.help-faq-topic-chip .help-faq-topic-count{margin-left:3px;opacity:.75;font-weight:800;}
.help-faq-goto{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:700;padding:3px 10px;border:1px solid #1d4ed8;border-radius:999px;background:var(--hb-eff6ff,#eff6ff);color:var(--ht-1d4ed8,#1d4ed8);cursor:pointer;font-family:inherit;}
.help-faq-goto:hover{background:var(--hb-dbeafe,#dbeafe);}
.help-faq-goto-note{display:block;margin-top:3px;font-size:10.5px;color:#6b7280;font-weight:400;}
.help-tabbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 16px;}
.help-tab-btn{font-size:12.5px;padding:7px 14px;border:1px solid var(--hc-93c5fd,#93c5fd);border-radius:999px;background:var(--hb-fff,#fff);color:var(--ht-1d4ed8,#1d4ed8);font-weight:700;white-space:nowrap;cursor:pointer;font-family:inherit;}
.help-tab-btn:hover{background:var(--hb-dbeafe,#dbeafe);}
.help-tab-btn.on{background:#1d4ed8;border-color:#1d4ed8;color:#fff;}
.help-tab-sep{width:1px;align-self:stretch;background:var(--hc-e2e8f0,#e2e8f0);margin:0 2px;}
.help-tab-btn-legal{border-color:var(--hc-e2e8f0,#e2e8f0);color:var(--ht-64748b,#64748b);font-weight:600;}
.help-tab-btn-legal:hover{background:var(--hb-e2e8f0,#e2e8f0);color:var(--ht-334155,#334155);}
.help-tab-btn-legal.on{background:#64748b;border-color:#64748b;color:#fff;}
.help-sec[data-help-color="legal"]{border-left:4px solid #cbd5e1;}
.help-sec[data-help-color="legal"]>summary{background:var(--hb-f1f5f9,#f1f5f9);color:var(--ht-334155,#334155);}
@media (max-width:760px){
  .help-tab-btn{padding:6px 11px;font-size:12px;}
}
.help-sec{position:relative;display:none;background:var(--hb-fff,#fff);border:1px solid var(--hc-e5e7eb,#e5e7eb);border-radius:10px;margin-bottom:10px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.04);scroll-margin-top:64px;}
.help-sec.help-tab-on{display:block;}
.help-sec>summary{cursor:default;list-style:none;user-select:none;padding:12px 14px;font-size:14px;font-weight:700;color:var(--ht-0f172a,#0f172a);display:flex;align-items:center;gap:8px;}
.help-sec>summary::-webkit-details-marker{display:none;}
/* 不放在 <summary> 內：interactive element 巢狀在 <summary> 裡會有無障礙問題（鍵盤/AT 導覽不一致）。
   改用絕對定位疊在標題列右側；.help-sec 開啟時才會顯示（跟原本在 summary 內的可見時機一致，見上方 JS：
   每個 tab 顯示時一定同時 open=true，兩者狀態永遠同步，故不需要在收合狀態也顯示此按鈕）。 */
.help-sec-acts{position:absolute;top:12px;right:14px;display:flex;gap:6px;}
.help-train-btn{font-size:11.5px;font-weight:700;padding:4px 11px;border:1px solid #16a34a;border-radius:999px;background:var(--hb-f0fdf4,#f0fdf4);color:var(--ht-166534,#166534);cursor:pointer;white-space:nowrap;font-family:inherit;}
.help-train-btn:hover{background:var(--hb-dcfce7,#dcfce7);}
/* 訓練任務 12 項都做完的主題，說明頁簽後面加 ✓ */
.help-tab-btn[data-trdone]::after{content:" ✓";color:#16a34a;}
.help-sec:has(.help-sec-acts)>summary{padding-right:220px;}
.help-sec[data-help-color="acct"]{border-left:4px solid #fda4af;}
.help-sec[data-help-color="acct"]>summary{background:var(--hb-fff1f2,#fff1f2);color:var(--ht-9f1239,#9f1239);}
@media (max-width:520px){ .help-sec-acts{top:9px;right:8px;gap:4px;} .help-sec-acts button{padding:3px 8px;font-size:11px;} }
.help-faq-btn{font-size:11.5px;font-weight:700;padding:4px 11px;border:1px solid #f59e0b;border-radius:999px;background:var(--hb-fffbeb,#fffbeb);color:var(--ht-92400e,#92400e);cursor:pointer;white-space:nowrap;font-family:inherit;}
.help-faq-btn:hover{background:var(--hb-fef3c7,#fef3c7);}
.help-faq-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;}
.help-faq-modal{background:var(--hb-fff,#fff);border-radius:14px;max-width:640px;width:100%;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35);}
.help-faq-head{padding:16px 18px 4px;display:flex;align-items:center;gap:10px;}
.help-faq-title{font-size:15px;font-weight:800;color:var(--ht-0f172a,#0f172a);flex:1;}
.help-faq-close{border:none;background:var(--hb-f1f5f9,#f1f5f9);color:var(--ht-475569,#475569);width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:14px;line-height:1;}
.help-faq-close:hover{background:var(--hb-e2e8f0,#e2e8f0);}
.help-faq-search{margin:10px 18px 0;padding:8px 12px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:8px;font-size:13px;font-family:inherit;}
.help-faq-topics{display:flex;gap:6px;flex-wrap:wrap;padding:10px 18px 4px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);}
.help-faq-topic-chip{font-size:11px;padding:3px 10px;border-radius:999px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-f8fafc,#f8fafc);color:var(--ht-475569,#475569);cursor:pointer;font-weight:600;font-family:inherit;}
.help-faq-topic-chip:hover{background:var(--hb-eef2f9,#eef2f9);}
.help-faq-topic-chip.on{background:#1e40af;border-color:#1e40af;color:#fff;}
.help-faq-list{overflow-y:auto;padding:10px 18px 18px;flex:1;}
.help-faq-item{border:1px solid var(--hc-e5e7eb,#e5e7eb);border-radius:8px;margin-bottom:8px;overflow:hidden;}
.help-faq-item>summary{cursor:pointer;list-style:none;padding:9px 12px;font-size:12.5px;font-weight:700;color:var(--ht-1e3a5f,#1e3a5f);background:var(--hb-f8fafc,#f8fafc);}
.help-faq-item>summary::-webkit-details-marker{display:none;}
.help-faq-item p{margin:0;padding:8px 12px 10px;font-size:12px;color:var(--ht-475569,#475569);line-height:1.7;}
.help-faq-empty{padding:24px;text-align:center;color:#94a3b8;font-size:12.5px;}
.help-sec[open]>summary{border-bottom:1px solid var(--hc-f1f5f9,#f1f5f9);}
.help-body{padding:6px 16px 14px;}
.help-item{margin:10px 0;}
.help-item b{color:var(--ht-1e40af,#1e40af);font-size:13px;}
.help-item p{margin:3px 0 0;font-size:12.5px;color:var(--ht-475569,#475569);line-height:1.65;}
.help-note{margin-top:8px;font-size:11.5px;color:#94a3b8;line-height:1.6;}
.help-role{margin:0 0 10px;padding-bottom:8px;font-size:12px;color:#64748b;font-style:italic;border-bottom:1px dashed var(--hc-e2e8f0,#e2e8f0);}
.help-goto{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:var(--ht-1d4ed8,#1d4ed8);text-decoration:none;}
.help-goto:hover{text-decoration:underline;}
.help-sec[data-help-color="etf"]{border-left:4px solid var(--hc-93c5fd,#93c5fd);}
.help-sec[data-help-color="etf"]>summary{background:var(--hb-dbeafe,#dbeafe);color:var(--ht-1e40af,#1e40af);}
.help-sec[data-help-color="stock"]{border-left:4px solid var(--hc-a5b4fc,#a5b4fc);}
.help-sec[data-help-color="stock"]>summary{background:var(--hb-e0e7ff,#e0e7ff);color:var(--ht-3730a3,#3730a3);}
.help-sec[data-help-color="portfolio"]{border-left:4px solid var(--hc-67e8f9,#67e8f9);}
.help-sec[data-help-color="portfolio"]>summary{background:var(--hb-ecfeff,#ecfeff);color:var(--ht-155e75,#155e75);}
.help-sec[data-help-color="skill"]{border-left:4px solid var(--hc-d8b4fe,#d8b4fe);}
.help-sec[data-help-color="skill"]>summary{background:var(--hb-faf5ff,#faf5ff);color:var(--ht-6b21a8,#6b21a8);}
.help-sec[data-help-color="trend"]{border-left:4px solid var(--hc-fed7aa,#fed7aa);}
.help-sec[data-help-color="trend"]>summary{background:var(--hb-fff7ed,#fff7ed);color:var(--ht-9a3412,#9a3412);}
.help-sec[data-help-color="mktlookup"]{border-left:4px solid #22d3ee;}
.help-sec[data-help-color="mktlookup"]>summary{background:var(--hb-ecfeff,#ecfeff);color:var(--ht-0e7490,#0e7490);}
.help-sec[data-help-color="analyze"]{border-left:4px solid var(--hc-6ee7b7,#6ee7b7);}
.help-sec[data-help-color="analyze"]>summary{background:var(--hb-ecfdf5,#ecfdf5);color:var(--ht-047857,#047857);}
#azOuterPanel-etfpop .ep-filters .rd-f label,#azOuterPanel-etfpop .ep-filters .rd-f .rd-lbl{white-space:nowrap;margin:0;}
#azOuterPanel-etfpop .ep-filters .rd-f input{width:110px;}
#azOuterPanel-etfpop .ep-filters .rd-f.kw input{width:150px;}
#azOuterPanel-etfpop .ep-etfs-cell{text-align:left!important;max-width:220px;white-space:normal;line-height:1.5;cursor:pointer;}
.st-pc-cell{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;transition:color .12s;}
.st-pc-cell:hover{color:var(--ht-1d4ed8,#1d4ed8);text-decoration-style:solid;}
#azOuterPanel-etfpop .ep-etf-mini{display:inline-block;font-size:10px;font-weight:700;background:var(--hb-e0f2fe,#e0f2fe);color:var(--ht-0369a1,#0369a1);border-radius:6px;padding:1px 5px;margin:0 3px 0 0;vertical-align:middle;cursor:pointer;}
#azOuterPanel-etfpop .ep-etf-mini:hover{background:var(--hb-bae6fd,#bae6fd);}
#azOuterPanel-etfpop .ep-type-chip{font-size:11px;font-weight:700;padding:2px 9px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:12px;background:var(--hb-fff,#fff);color:var(--ht-475569,#475569);cursor:pointer;font-family:inherit;margin-right:3px;}
#azOuterPanel-etfpop .ep-type-chip:hover{background:var(--hb-f1f5f9,#f1f5f9);}
#azOuterPanel-etfpop .ep-type-chip.active{background:#0e7490;border-color:#0e7490;color:#fff;}
#azOuterPanel-etfpop .ep-etf-more{display:inline-block;font-size:11px;font-weight:700;color:#0891b2;background:var(--hb-ecfeff,#ecfeff);border:1px solid var(--hc-a5f3fc,#a5f3fc);border-radius:7px;padding:1px 7px;cursor:pointer;vertical-align:middle;}
#azOuterPanel-etfpop .ep-etf-more:hover{background:var(--hb-cffafe,#cffafe);}
#azOuterPanel-etfpop .rd-tbl th:nth-child(3),#azOuterPanel-etfpop .rd-tbl td:nth-child(3){text-align:left;}
#azOuterPanel-etfpop .rd-tbl th:nth-child(9){text-align:left;}
#azOuterPanel-divcal .rd-tbl th:nth-child(5),#azOuterPanel-divcal .rd-tbl td:nth-child(5){text-align:left;}
#azOuterPanel-etfpop .rd-tbl th:nth-child(1),#azOuterPanel-etfpop .rd-tbl td:nth-child(1){width:2.2em;}
#azOuterPanel-etfpop .rd-tbl-wrap{max-height:calc(70vh + 40px);}
#rvThead th:nth-child(3){text-align:left;}
/* ── 趨勢 Tab ── */
#tab-trend{padding:14px 16px;}
.tr-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:720px){.tr-grid{grid-template-columns:1fr;}}
.tr-card{background:var(--hb-fff,#fff);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:10px;padding:14px 16px;min-width:0;}
.tr-card-title{font-size:13px;font-weight:800;color:var(--ht-1a2a3a,#1a2a3a);margin-bottom:10px;}
.tr-subtabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px;}
.tr-subtab{padding:4px 10px;background:var(--hb-f1f5f9,#f1f5f9);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:var(--ht-475569,#475569);transition:all .15s;}
.tr-subtab:hover{background:var(--hb-e2e8f0,#e2e8f0);}
.tr-subtab.active{background:#1e40af;color:#fff;border-color:#1e40af;}
.tr-info{font-size:15px;font-weight:700;color:var(--ht-1a2a3a,#1a2a3a);min-height:22px;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
.tr-info .tr-price{font-size:18px;font-weight:800;}
.tr-info .tr-chg{font-size:13px;margin-left:8px;}
.tr-info .tr-hl{font-size:10px;color:#889;margin-left:10px;}
.tr-chg-up{color:var(--ht-c0392b,#c0392b);}.tr-chg-dn{color:#27ae60;}.tr-chg-flat{color:#64748b;}
/* 趨勢：今日速覽總覽列 */
.trsum{background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:8px;padding:8px 12px;margin-bottom:12px;font-size:12px;color:var(--ht-334155,#334155);line-height:1.9;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
.trsum-title{font-weight:800;color:var(--ht-0f172a,#0f172a);margin-right:10px;}
.trsum-item{white-space:nowrap;}
.trsum-item b{color:var(--ht-334155,#334155);font-weight:700;}
.trsum-sep{color:#cbd5e1;margin:0 7px;}
.trsum-note{margin-top:3px;font-size:11px;color:var(--ht-92400e,#92400e);}
/* 趨勢：主要指數方塊（固定今日漲跌，同登入頁；紅漲綠跌，色塊深淺隨幅度） */
.trtiles{margin-bottom:12px;}
.tr-viewbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.tr-seg{display:inline-flex;border:1px solid var(--hc-d1d5db,#d1d5db);border-radius:8px;overflow:hidden;}
.tr-seg button{padding:6px 16px;font-size:12px;font-weight:700;border:0;background:var(--hb-fff,#fff);color:var(--ht-475569,#475569);cursor:pointer;}
.tr-seg button+button{border-left:1px solid var(--hc-d1d5db,#d1d5db);}
.tr-seg button.active{background:#1e40af;color:#fff;}
#trPeriodRow.board-mode .tr-period-btn,#trPeriodRow.board-mode .tr-period-lbl{display:none;}
.trtiles-sub{font-size:11px;color:var(--ht-667,#667);}
.trtiles-sgrid{--trcols:6;display:flex;flex-wrap:wrap;gap:8px;}
.trtiles-sgrid.trtiles-one .trtile{flex-grow:0;}
.trtiles-sec{margin-bottom:14px;}
.trtiles-sech{font-size:12px;font-weight:800;color:var(--ht-334155,#334155);margin:2px 0 6px;}
.trtile{flex:1 1 calc((100% - (var(--trcols) - 1) * 8px) / var(--trcols) - 1px);background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:8px;padding:9px 6px;text-align:center;cursor:pointer;transition:background .3s,border-color .3s,transform .12s;min-width:0;}
.trtile:hover{transform:translateY(-1px);}
.trtile-name{font-size:11px;font-weight:700;color:var(--ht-475569,#475569);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.trtile-px{font-size:15px;font-weight:800;color:var(--ht-0f172a,#0f172a);line-height:1.3;}
.trtile-chg{font-size:11px;font-weight:600;min-height:15px;}
html.ez-dark .trtile-chg.tr-chg-up{color:#fca5a5;}
html.ez-dark .trtile-chg.tr-chg-dn{color:#86efac;}
html.ez-dark .trtile-chg.tr-chg-flat{color:#cbd5e1;}
@media(max-width:640px){.trtile-px{font-size:14px;}}
/* 趨勢：比較模式 */
.tr-cmp-btn{padding:4px 10px;background:var(--hb-fff,#fff);border:1px dashed #94a3b8;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;color:var(--ht-475569,#475569);transition:all .15s;}
.tr-cmp-btn:hover{background:var(--hb-eef2ff,#eef2ff);border-color:#6366f1;}
.tr-cmp-btn.on{background:#1e40af;border-style:solid;border-color:#1e40af;color:#fff;}
.tr-subtab.sel{background:#1e40af;color:#fff;border-color:#1e40af;}
/* 趨勢・恐慌：大盤融資餘額 vs 指數（上下兩圖共用時間軸，不用雙 Y 軸） */
.mgh-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px;}
.mgh-btn{padding:4px 10px;background:var(--hb-f1f5f9,#f1f5f9);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:var(--ht-475569,#475569);}
.mgh-btn:hover{background:var(--hb-e2e8f0,#e2e8f0);}
.mgh-btn.active{background:#1e40af;color:#fff;border-color:#1e40af;}
.mgh-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:8px;}
.mgh-stat{background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:8px;padding:6px 10px;min-width:0;}
.mgh-stat-l{font-size:11px;color:var(--ht-667,#667);font-weight:600;}
.mgh-stat-v{font-size:15px;font-weight:800;color:var(--ht-1a2a3a,#1a2a3a);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mgh-sub{font-size:11px;font-weight:700;color:var(--ht-475569,#475569);margin:6px 0 2px;display:flex;align-items:center;gap:6px;}
.mgh-sw{display:inline-block;width:12px;height:2px;border-radius:1px;}
.mgh-cvs{height:150px;position:relative;min-width:0;}
.mgh-note{font-size:11px;color:#889;line-height:1.7;margin-top:8px;}
.mgh-read{font-size:13px;color:var(--ht-334155,#334155);line-height:1.7;margin:4px 0 8px;}
@media(max-width:640px){ .mgh-stats{grid-template-columns:repeat(2,minmax(0,1fr));} }
.tr-range{font-size:10px;color:#889;margin:2px 0 4px;-webkit-text-size-adjust:100%;text-size-adjust:100%;line-height:1.45;word-break:break-word;}
.tr-basis{font-size:11px;color:var(--ht-556,#556);margin:2px 0 4px;cursor:help;-webkit-text-size-adjust:100%;text-size-adjust:100%;line-height:1.45;word-break:break-word;}
.tr-basis .b-pos{color:var(--ht-b91c1c,#b91c1c);font-weight:700;}
.tr-basis .b-neg{color:var(--ht-15803d,#15803d);font-weight:700;}
.tr-label{font-size:11px;color:#778;margin-bottom:6px;-webkit-text-size-adjust:100%;text-size-adjust:100%;line-height:1.4;}
.tr-canvas{height:160px;position:relative;min-width:0;}
.tr-canvas.tr-canvas-hide{display:none;height:0;margin:0;padding:0;}
.tr-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1e293b;color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;z-index:9999;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90vw;text-align:center;}
.tr-toast.show{opacity:1;}
.tr-period-btn{padding:4px 10px;background:var(--hb-f1f5f9,#f1f5f9);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:var(--ht-475569,#475569);transition:all .15s;}
.tr-period-btn:hover{background:var(--hb-e2e8f0,#e2e8f0);}
.tr-period-btn.active{background:#1e40af;color:#fff;border-color:#1e40af;}
.tr-cat-btn[data-tr-cat="fear"]{background:var(--hb-fff1f2,#fff1f2);color:var(--ht-9f1239,#9f1239);border-color:var(--hc-fda4af,#fda4af);}
.tr-cat-btn[data-tr-cat="fear"]:hover:not(.active){background:var(--hb-ffe4e6,#ffe4e6);border-color:#fb7185;}
.tr-cat-btn[data-tr-cat="fear"].active{background:#9f1239;color:#fff;border-color:#9f1239;border-bottom:2px solid var(--hc-fff,#fff);}
.tr-cat-bar{display:flex;gap:1px;margin-bottom:14px;border-bottom:2px solid var(--hc-c8d4e3,#c8d4e3);flex-wrap:wrap;align-items:flex-end;}
.tr-cat-btn{padding:5px 12px;background:var(--hb-fff7ed,#fff7ed);color:var(--ht-9a3412,#9a3412);border:1px solid var(--hc-fed7aa,#fed7aa);border-bottom:none;border-radius:5px 5px 0 0;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;position:relative;margin-bottom:-2px;z-index:1;font-family:inherit;}
.tr-cat-btn:hover:not(.active){background:var(--hb-ffedd5,#ffedd5);border-color:var(--hc-fdba74,#fdba74);}
.tr-cat-btn.active{z-index:3;background:#9a3412;color:#fff;border-color:#9a3412;border-bottom:2px solid var(--hc-fff,#fff);padding-bottom:7px;}
/* 手機：鎖定字級，避免 iOS 自動放大小字 */
@media(max-width:720px){
  #tab-trend{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
  .tr-info{font-size:14px;}
  .tr-info .tr-price{font-size:16px;}
  .tr-info .tr-chg{font-size:12px;margin-left:6px;}
  .tr-info .tr-hl{font-size:10px;margin-left:6px;display:inline-block;}
  .tr-range{font-size:10px;}
  .tr-basis{font-size:11px;}
  .tr-label{font-size:11px;}
}
#etfSubTabsRow{margin-bottom:12px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.pf-view-btn{padding:4px 14px;font-size:12px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);color:var(--ht-475569,#475569);border-radius:6px;cursor:pointer;font-weight:600;transition:background .15s,color .15s,border-color .15s;}
.pf-view-btn:hover{background:var(--hb-f1f5f9,#f1f5f9);border-color:#94a3b8;}
#pfViewListBtn.pf-view-active{background:#1e40af;color:#fff;border-color:#1e40af;}
#pfViewMatBtn.pf-view-active{background:#0f766e;color:#fff;border-color:#0f766e;}
#pfViewPerfBtn.pf-view-active{background:#92400e;color:#fff;border-color:#92400e;}
#pfViewSigBtn.pf-view-active{background:#6b21a8;color:#fff;border-color:#6b21a8;}
#pfViewDivBtn.pf-view-active{background:#a16207;color:#fff;border-color:#a16207;}
.mystock-cat-chip{padding:3px 12px;border-radius:20px;border:1px solid var(--hc-c8d4e3,#c8d4e3);background:var(--hb-f5f7fa,#f5f7fa);font-size:12px;cursor:pointer;font-weight:600;color:var(--ht-445,#445);transition:background .15s,border-color .15s;white-space:nowrap;user-select:none;}
.mystock-cat-chip:hover{background:var(--hb-e8edf5,#e8edf5);border-color:#9ab;}
.mystock-cat-chip.active{background:#155e75;color:#fff;border-color:#155e75;}
.pf-cat-del-btn{font-size:10px;padding:2px 5px;border:1px solid var(--hc-fca5a5,#fca5a5);background:var(--hb-fff5f5,#fff5f5);color:var(--ht-b91c1c,#b91c1c);border-radius:4px;cursor:pointer;margin-left:1px;margin-right:5px;line-height:1;}
.pf-cat-del-btn:hover{background:var(--hb-fee2e2,#fee2e2);}
.mystock-cat-cnt{font-weight:400;font-size:11px;opacity:.8;}
.pf-summary-box{display:flex;gap:0;flex-wrap:wrap;background:var(--hb-f0fdfa,#f0fdfa);border:1px solid var(--hc-99f6e4,#99f6e4);border-radius:10px;margin-bottom:12px;overflow:hidden;}
.pf-summary-item{flex:1;min-width:130px;padding:10px 16px;border-right:1px solid var(--hc-99f6e4,#99f6e4);}
.pf-summary-item:last-child{border-right:none;}
.pf-summary-label{font-size:11px;color:var(--ht-0f766e,#0f766e);font-weight:600;margin-bottom:4px;}
.pf-summary-val{font-size:16px;font-weight:800;color:var(--ht-134e4a,#134e4a);}
.pf-quicksum{display:flex;flex-wrap:wrap;gap:6px 22px;padding:9px 14px;margin-bottom:10px;background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e2e8f0,#e2e8f0);border-radius:8px;font-size:12.5px;align-items:center;}
.pf-qs-item{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.pf-qs-lbl{color:#64748b;font-weight:700;font-size:11px;}
.pf-tbl{width:100%;border-collapse:collapse;font-size:13px;}
.pf-tbl th{padding:7px 8px;border-bottom:2px solid var(--hc-d0d7e8,#d0d7e8);background:var(--hb-f5f8ff,#f5f8ff);color:var(--ht-334,#334);font-weight:700;white-space:nowrap;text-align:left;}
.pf-col-dragging{opacity:.45!important;}
.pf-col-over{background:var(--hb-bfdbfe,#bfdbfe)!important;outline:2px dashed #3b82f6;}
.pf-tbl td{padding:7px 8px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);vertical-align:middle;}
.pf-tbl tbody tr:hover td{background:var(--hb-f0f9ff,#f0f9ff);}
.pf-cost-cell:hover{color:var(--ht-1d4ed8,#1d4ed8);}
.pf-cur-cell:hover{color:var(--ht-0f766e,#0f766e);}
.pf-signal-reading{display:flex;align-items:center;gap:7px;min-width:210px;line-height:1.35;}
.pf-reading-chip{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;padding:2px 7px;border:1px solid;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;}
.pf-reading-bull{color:var(--ht-991b1b,#991b1b);background:var(--hb-fff1f2,#fff1f2);border-color:var(--hc-fecdd3,#fecdd3);}
.pf-reading-bear{color:var(--ht-166534,#166534);background:var(--hb-f0fdf4,#f0fdf4);border-color:var(--hc-bbf7d0,#bbf7d0);}
.pf-reading-risk{color:var(--ht-92400e,#92400e);background:var(--hb-fffbeb,#fffbeb);border-color:var(--hc-fde68a,#fde68a);}
.pf-reading-neutral{color:var(--ht-475569,#475569);background:var(--hb-f8fafc,#f8fafc);border-color:var(--hc-cbd5e1,#cbd5e1);}
.pf-reading-wait{color:#64748b;background:var(--hb-f8fafc,#f8fafc);border-color:var(--hc-e2e8f0,#e2e8f0);}
.pf-reading-reason{color:#64748b;font-size:11px;font-weight:500;}
.pf-up{color:var(--ht-b91c1c,#b91c1c);font-weight:600;}
.pf-dn{color:#16a34a;font-weight:600;}
.pf-jp-row:hover{background:var(--hb-fff5f5,#fff5f5);}
.pf-flat{color:#888;}
.pf-mx-cell{text-align:center;font-size:12px;padding:5px 6px;}
.pf-mx-has{background:var(--hb-cffafe,#cffafe);color:var(--ht-164e63,#164e63);font-weight:700;border-radius:4px;padding:2px 6px;display:inline-block;}
.pf-perf-tbl{width:100%;border-collapse:collapse;font-size:13px;}
.pf-perf-tbl th{padding:8px 10px;background:var(--hb-f0fdfa,#f0fdfa);color:var(--ht-0f766e,#0f766e);border-bottom:2px solid var(--hc-99f6e4,#99f6e4);text-align:right;white-space:nowrap;}
.pf-perf-tbl th:first-child{text-align:left;}
.pf-perf-tbl td{padding:8px 10px;border-bottom:1px solid var(--hc-e2e8f0,#e2e8f0);text-align:right;font-variant-numeric:tabular-nums;}
.pf-perf-tbl td:first-child{text-align:left;font-weight:600;}
.pf-perf-tbl tfoot td{background:var(--hb-f0fdfa,#f0fdfa);font-weight:800;border-top:2px solid var(--hc-99f6e4,#99f6e4);}
.tab-panel{display:none;}.tab-panel.active{display:block;}

.dv-view-tab{padding:6px 16px;font-size:13px;font-weight:700;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:8px;background:var(--hb-fff,#fff);color:var(--ht-475569,#475569);cursor:pointer;}
.dv-view-tab:hover{background:var(--hb-f0f9ff,#f0f9ff);}
.dv-view-tab.on{background:#1565C0;border-color:#1565C0;color:#fff;}
.dv-ctrl{display:flex;gap:10px;align-items:center;margin:8px 0 10px 0;flex-wrap:wrap;}
.dv-ctrl input{padding:6px 8px;border:1px solid var(--hc-d7dce4,#d7dce4);border-radius:8px;}
.dv-ctrl button{padding:6px 12px;border:1px solid #1565C0;background:#1565C0;color:#fff;border-radius:8px;cursor:pointer;font-weight:700;font-size:12px;}.dv-table{width:100%;border-collapse:collapse;background:var(--hb-fff,#fff);border:1px solid var(--hc-e5e7ef,#e5e7ef);border-radius:10px;overflow:hidden;}
.dv-table th,.dv-table td{padding:8px 10px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);font-size:13px;text-align:left;}
.dv-table th{background:var(--hb-f8fafc,#f8fafc);color:var(--ht-445,#445);font-weight:700;white-space:nowrap;}
.dv-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.dv-table tbody tr:hover td{background:var(--hb-f0f5ff,#f0f5ff);transition:background .15s;}
.dv-small{font-size:12px;color:var(--ht-667,#667);}
.dv-year{background:var(--hb-fff,#fff);border:1px solid var(--hc-e5e7ef,#e5e7ef);border-radius:10px;overflow:auto;}
.dv-year-head{padding:10px 12px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);background:var(--hb-f8fafc,#f8fafc);font-weight:700;color:var(--ht-223,#223);}
.dv-months{display:grid;grid-template-columns:repeat(12,minmax(140px,1fr));}
.dv-month{border-right:1px solid var(--hc-eef1f7,#eef1f7);min-height:240px;}
.dv-month:last-child{border-right:none;}
.dv-month-title{padding:8px 10px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);font-weight:800;color:var(--ht-334,#334);background:var(--hb-fcfdff,#fcfdff);position:sticky;top:0;}
.dv-item{padding:8px 10px;border-bottom:1px dashed var(--hc-eef1f7,#eef1f7);font-size:12px;}
.dv-item:last-child{border-bottom:none;}
.dv-item .code{font-family:monospace;font-weight:700;color:#fff;background:#2b6cb0;padding:2px 7px;border-radius:5px;display:inline-block;}
.dv-item .amt{float:right;font-variant-numeric:tabular-nums;font-weight:800;}
.dv-item .tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:99px;font-size:10px;border:1px solid var(--hc-dde,#dde);}
.dv-item .tag.paid{background:var(--hb-e8f5e9,#e8f5e9);border-color:var(--hc-a5d6a7,#a5d6a7);color:var(--ht-1b5e20,#1b5e20);}
.dv-item .tag.est{background:var(--hb-fff3e0,#fff3e0);border-color:var(--hc-ffcc80,#ffcc80);color:var(--ht-8d4a00,#8d4a00);}
/* 年度時間軸：ETF × 月份矩陣 */
.dvy-wrap{overflow:auto;max-height:72vh;}
.dvy-table{border-collapse:separate;border-spacing:0;font-size:12px;width:max-content;min-width:100%;}
.dvy-table th,.dvy-table td{border-bottom:1px solid var(--hc-eef1f7,#eef1f7);border-right:1px solid var(--hc-f4f6fb,#f4f6fb);padding:5px 6px;background:var(--hb-fff,#fff);white-space:nowrap;}
.dvy-table thead th{position:sticky;top:0;z-index:3;background:var(--hb-f8fafc,#f8fafc);font-weight:800;color:var(--ht-334,#334);text-align:center;}
.dvy-table th.sortable{cursor:pointer;user-select:none;}
.dvy-table th.sortable:hover{background:var(--hb-eef2f9,#eef2f9);}
.dvy-table td.dvy-code,.dvy-table th.dvy-code{position:sticky;left:0;z-index:2;width:72px;min-width:72px;box-sizing:border-box;}
.dvy-table td.dvy-name,.dvy-table th.dvy-name{position:sticky;left:72px;z-index:2;max-width:11em;overflow:hidden;text-overflow:ellipsis;text-align:left;}
.dvy-table thead th.dvy-code,.dvy-table thead th.dvy-name{z-index:5;}
.dvy-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.dvy-table tbody tr:hover td{background:var(--hb-f6f9ff,#f6f9ff);}
.dvy-table .cur{background:var(--hb-fff7e6,#fff7e6) !important;}
.dvy-table thead th.cur{background:var(--hb-ffedcc,#ffedcc) !important;}
.dvy-table tr.dvy-watch td.dvy-code,.dvy-table tr.dvy-watch td.dvy-name{background:var(--hb-fffbeb,#fffbeb);}
.dvy-c{display:inline-block;min-width:38px;text-align:center;border-radius:6px;padding:2px 5px;margin:1px 0;font-weight:700;font-variant-numeric:tabular-nums;}
.dvy-c.p{background:var(--hb-e8f5e9,#e8f5e9);color:var(--ht-1b5e20,#1b5e20);}
.dvy-c.f{background:var(--hb-e0f2fe,#e0f2fe);color:var(--ht-0369a1,#0369a1);}
.dvy-c.e{background:var(--hb-fff3e0,#fff3e0);color:var(--ht-8d4a00,#8d4a00);font-weight:600;}
.dvy-freq{display:inline-block;border-radius:99px;padding:1px 8px;font-size:11px;font-weight:700;white-space:nowrap;}
.dvy-mcnt{color:var(--ht-667,#667);font-size:11px;text-align:center;font-weight:700;}
.dvy-table tfoot td{background:var(--hb-fbfcff,#fbfcff);border-top:2px solid var(--hc-e5e7ef,#e5e7ef);}

.etf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;}
.etf-card{background:var(--hb-fff,#fff);border:1px solid var(--hc-dde5ef,#dde5ef);border-radius:10px;box-shadow:0 1px 5px rgba(0,0,0,.06);overflow:hidden;}
.etf-card-head{padding:10px 14px;border-bottom:1px solid var(--hc-eef2f7,#eef2f7);background:var(--hb-f8fafc,#f8fafc);display:flex;flex-direction:column;align-items:stretch;gap:6px;}
.etf-card-head-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;min-width:0;}
.etf-head-right{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-left:auto;max-width:100%;justify-content:flex-end;}
.etf-chip{display:inline-block;padding:2px 8px;background:#1565C0;color:#fff;border-radius:4px;font-size:11px;font-weight:700;font-family:monospace;transition:filter .12s;}
.etf-chip[onclick]:hover{filter:brightness(1.25);}
.etf-name{font-weight:700;font-size:13px;color:var(--ht-1a2a3a,#1a2a3a);width:100%;min-width:0;line-height:1.35;word-break:break-word;}
.etf-metrics{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.etf-metrics.pr-perf-open{cursor:pointer;user-select:none;}
.etf-metrics.pr-perf-open:hover{filter:brightness(.97);}
.etf-price{font-size:15px;font-weight:700;font-family:monospace;}
.etf-up{color:var(--ht-c0392b,#c0392b);}.etf-dn{color:#27ae60;}.etf-flat{color:var(--ht-667,#667);}
.etf-mtd{font-size:11px;padding:2px 7px;border-radius:4px;border:1px solid var(--hc-dde,#dde);background:var(--hb-f8fafc,#f8fafc);white-space:nowrap;}
.etf-card-body{padding:10px 14px;}
.etf-section-label{font-size:11px;font-weight:700;color:var(--ht-667,#667);margin:6px 0 4px;}
.etf-badge-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px;min-height:20px;}
.badge-add{background:var(--hb-e8f5e9,#e8f5e9);color:var(--ht-1b5e20,#1b5e20);border:1px solid var(--hc-a5d6a7,#a5d6a7);padding:2px 7px;border-radius:99px;font-size:11px;white-space:nowrap;display:inline-block;}
.badge-del{background:var(--hb-ffebee,#ffebee);color:var(--ht-b71c1c,#b71c1c);border:1px solid #ef9a9a;padding:2px 7px;border-radius:99px;font-size:11px;white-space:nowrap;display:inline-block;}
.badge-none{font-size:11px;color:#aaa;}
.etf-tbl{width:100%;border-collapse:collapse;font-size:11px;margin-top:4px;}
.etf-tbl th{padding:4px 6px;background:var(--hb-f0f4fa,#f0f4fa);color:var(--ht-445,#445);text-align:left;border-bottom:1px solid var(--hc-e0e7ef,#e0e7ef);position:sticky;top:0;}
.etf-tbl td{padding:4px 6px;border-bottom:1px solid var(--hc-f4f6fb,#f4f6fb);}
.etf-tbl tr:last-child td{border-bottom:none;}
.etf-holdings-wrap{max-height:min(55vh,420px);overflow:auto;border:1px solid var(--hc-eef2f7,#eef2f7);border-radius:6px;}
.etf-cnt{font-size:11px;color:#778;}
.etf-cnt-btn{font-size:11px;font-weight:700;color:#fff;background:#2563eb;border:1px solid #1d4ed8;border-radius:10px;padding:2px 9px;cursor:pointer;white-space:nowrap;}
.etf-cnt-btn:hover{background:#1d4ed8;}
.etf-spinner{font-size:11px;color:var(--ht-1565c0,#1565C0);}
.etf-err{font-size:11px;color:var(--ht-b71c1c,#b71c1c);padding:4px 0;}
.etf-lineout-wrap{flex-basis:100%;display:flex;justify-content:flex-end;align-items:center;gap:5px;padding-top:2px;}
.etf-lineout-btn{font-size:11px;padding:3px 10px;border:1px solid #e57373;border-radius:6px;background:var(--hb-fff,#fff);color:var(--ht-c62828,#c62828);cursor:pointer;}
.etf-lineout-btn:hover{background:var(--hb-ffebee,#ffebee);}
.etf-card-type-sel{font-size:11px;padding:2px 4px;border:1px solid var(--hc-d1d5db,#d1d5db);border-radius:6px;background:var(--hb-f8f9fb,#f8f9fb);color:var(--ht-445,#445);cursor:pointer;}
.etf-card.etf-card-custom .etf-card-head{background:var(--hb-fffef5,#fffef5);}
.etf-lineup-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px;padding:8px 10px;background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e5e7ef,#e5e7ef);border-radius:8px;font-size:12px;}
.etf-lineup-bar input{max-width:200px;}
.n400-jump-btn{padding:5px 10px;font-size:11px;border:1px solid var(--hc-b9c6d3,#b9c6d3);border-radius:6px;background:var(--hb-fff,#fff);color:var(--ht-223,#223);cursor:pointer;}
.n400-jump-btn:hover{background:var(--hb-f0f4fa,#f0f4fa);border-color:#90a4b7;}
.etf-card.n400-card-flash{outline:3px solid #ff9800;outline-offset:2px;box-shadow:0 0 0 4px rgba(255,152,0,.18);}
.etf-lineup-excluded .lineup-ex-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--hb-fff,#fff);border:1px solid var(--hc-dde,#dde);border-radius:8px;margin:2px;}
.etf-lineup-excluded .lineup-purge-btn{border:none;background:none;font-size:20px;line-height:1;padding:0 4px;color:var(--ht-b71c1c,#b71c1c);cursor:pointer;font-weight:400;}
.etf-lineup-excluded .lineup-purge-btn:hover{color:var(--ht-7f0000,#7f0000);}
.overlap-table-wrap{overflow:auto;max-height:min(72vh,780px);margin-top:8px;border:1px solid var(--hc-e5e7ef,#e5e7ef);border-radius:10px;background:var(--hb-fff,#fff);-webkit-overflow-scrolling:touch;}
.overlap-tbl{border-collapse:separate;border-spacing:0;font-size:12px;white-space:nowrap;width:max-content;min-width:100%;}
.overlap-tbl th,.overlap-tbl td{padding:6px 8px;border:1px solid var(--hc-e0e7ef,#e0e7ef);text-align:center;vertical-align:middle;}
.overlap-tbl th{background:var(--hb-f0f4fa,#f0f4fa);color:var(--ht-445,#445);font-weight:700;}
.overlap-tbl td.stock-col{text-align:left;font-weight:700;background:var(--hb-fafbfc,#fafbfc);}
.overlap-tbl thead th{position:sticky;top:0;z-index:3;background:var(--hb-f0f4fa,#f0f4fa);box-shadow:0 1px 0 #e0e7ef;}
.overlap-tbl thead th.ov-c1{left:0;z-index:8;min-width:148px;width:148px;box-shadow:1px 1px 0 #e0e7ef;}
.overlap-tbl thead th.ov-c2{left:148px;z-index:8;min-width:58px;width:58px;box-shadow:1px 1px 0 #e0e7ef;}
.overlap-tbl tbody td.ov-c1{position:sticky;left:0;z-index:5;background:var(--hb-fafbfc,#fafbfc);box-shadow:3px 0 6px rgba(15,23,42,.06);}
.overlap-tbl tbody td.ov-c2{position:sticky;left:148px;z-index:5;background:var(--hb-fafbfc,#fafbfc);box-shadow:3px 0 6px rgba(15,23,42,.06);}
.overlap-tbl thead th.ov-c3{left:206px;z-index:8;min-width:64px;width:64px;box-shadow:1px 1px 0 #e0e7ef;}
.overlap-tbl tbody td.ov-c3{position:sticky;left:206px;z-index:5;background:var(--hb-fafbfc,#fafbfc);box-shadow:3px 0 6px rgba(15,23,42,.06);font-weight:700;}
.overlap-tbl thead th[data-ovsort]{cursor:pointer;}
.overlap-tbl thead th[data-ovsort]:hover{background:var(--hb-e3edfa,#e3edfa);}
.overlap-tbl thead th[data-ovsort].on{background:var(--hb-dbeafe,#dbeafe);color:var(--ht-1d4ed8,#1d4ed8);}
.ov-chip{display:inline-block;padding:2px 9px;border-radius:12px;border:1px solid var(--hc-d5dce6,#d5dce6);background:var(--hb-f6f8fb,#f6f8fb);color:#99a;font-size:11px;font-weight:700;cursor:pointer;user-select:none;}
.ov-chip.on{background:#1a4fa8;border-color:#1a4fa8;color:#fff;}
.ov-chip:hover{opacity:.85;}
.ov-mini{font-size:11px;padding:2px 10px;border:1px solid var(--hc-ccd,#ccd);border-radius:12px;background:var(--hb-fff,#fff);color:var(--ht-556,#556);cursor:pointer;}
.ovs-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:4px 0 10px;}
.ovs-k{background:var(--hb-fff,#fff);border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;min-width:0;}
.ovs-k span{font-size:11px;color:#94a3b8;font-weight:700;}
.ovs-k b{font-size:17px;color:var(--ht-1a2a3a,#1a2a3a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ovs-k small{font-size:11px;color:#64748b;}
.ovs-click{cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.ovs-click:hover{border-color:#a855f7;box-shadow:0 2px 8px rgba(124,58,237,.12);}
.ovs-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:14px;align-items:start;}
@media (max-width:980px){.ovs-grid{grid-template-columns:minmax(0,1fr);}.ovs-right{position:static;}}
.ovs-left,.ovs-right{min-width:0;}
.ovs-right{background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:12px;padding:10px 12px;position:sticky;top:8px;}
.ovs-sec{font-size:13px;font-weight:800;color:var(--ht-1a2a3a,#1a2a3a);margin:0 0 6px;}
.ovs-sec small{display:block;font-size:10.5px;font-weight:400;color:#94a3b8;margin-top:1px;}
.ovs-pair-h{font-size:12px;color:#64748b;line-height:1.5;}
.ovs-pair-h b{color:var(--ht-1a2a3a,#1a2a3a);font-size:13px;}
.ovs-pair-h span{color:#a855f7;font-weight:700;margin:0 3px;}
.ovs-more{font-size:10.5px;color:#94a3b8;text-align:center;margin-top:3px;}
.ovs-tomatrix{margin-top:2px;}
.ovs-heat td.ovs-on{outline:3px solid #7c3aed;outline-offset:-3px;}
.ovs-heat td[data-ovselpair]:hover{filter:brightness(1.08);outline:2px solid #a855f7;outline-offset:-2px;}
.ovs-legend{display:flex;align-items:center;gap:6px;font-size:10.5px;color:#94a3b8;margin:6px 0 14px;flex-wrap:wrap;}
.ovs-legend i{display:inline-block;width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,rgba(180,83,9,.06),rgba(180,83,9,1));}
.ovs-legend em{font-style:normal;margin-left:6px;}
.ovs-uq{background:var(--hb-fff,#fff);border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:12px;padding:10px 12px;}
.ovs-uq-r{display:grid;grid-template-columns:22px minmax(0,1.3fr) minmax(60px,1fr) 52px minmax(0,auto);align-items:center;gap:8px;padding:4px 4px;border-radius:6px;cursor:pointer;font-size:12px;}
.ovs-uq-r:hover{background:var(--hb-f6f8fb,#f6f8fb);}
.ovs-uq-n{font-size:11px;color:#94a3b8;text-align:right;font-weight:700;}
.ovs-uq-c{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#64748b;font-size:11px;}
.ovs-uq-c b{color:var(--ht-1a2a3a,#1a2a3a);font-size:12px;}
.ovs-uq-b{height:9px;background:var(--hc-e5eaf0,#e5eaf0);border-radius:5px;overflow:hidden;}
.ovs-uq-b i{display:block;height:100%;border-radius:5px;}
.ovs-uq-v{font-weight:800;text-align:right;}
.ovs-uq-m{font-size:10.5px;color:#94a3b8;white-space:nowrap;}
@media (max-width:560px){.ovs-uq-r{grid-template-columns:22px minmax(0,1fr) 60px 48px;}.ovs-uq-m{display:none;}}
.ovm-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;align-items:start;}
@media (max-width:980px){.ovm-grid{grid-template-columns:minmax(0,1fr);}}
.ovm-r{display:grid;grid-template-columns:minmax(70px,120px) minmax(0,1fr) 74px;align-items:center;gap:8px;padding:3px 4px;border-radius:6px;cursor:pointer;}
.ovm-r:hover{background:var(--hb-f6f8fb,#f6f8fb);}
.ovm-n{display:flex;align-items:baseline;gap:4px;min-width:0;white-space:nowrap;overflow:hidden;}
.ovm-n b{font-size:12px;color:var(--ht-1a2a3a,#1a2a3a);overflow:hidden;text-overflow:ellipsis;}
.ovm-n small{font-size:10px;color:#94a3b8;}
.ovm-bar{display:flex;height:12px;background:var(--hc-e5eaf0,#e5eaf0);border-radius:6px;overflow:hidden;}
.ovm-bar i{display:block;height:100%;border-right:1px solid rgba(255,255,255,.6);}
.ovm-c{font-size:11px;color:#64748b;text-align:right;white-space:nowrap;}
.ovm-c b{color:var(--ht-1a2a3a,#1a2a3a);font-size:12px;margin-right:1px;}
.ovm-say{background:var(--hb-f8fafc,#f8fafc);border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.7;color:var(--ht-334,#334155);margin:4px 0 10px;}
.ovm-say b{color:var(--ht-1a2a3a,#1a2a3a);}
.ovm-stk{cursor:pointer;color:#7c3aed !important;text-decoration:underline dotted;}
.ovm-tip{display:block;font-size:11px;color:#d97706;margin-top:3px;}
.ovm-tip-b{margin-left:4px;border-color:#f59e0b !important;color:#b45309 !important;font-weight:700;}
.ovm-cl{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ht-334,#334155);background:var(--hb-f8fafc,#f8fafc);border-radius:8px;padding:6px 8px;margin:2px 0 6px;}
.ovm-cl small{color:#94a3b8;font-size:10.5px;}
.ovm-cl-t{font-style:normal;font-size:10px;font-weight:800;color:#fff;border-radius:4px;padding:0 5px;margin:0 5px 0 4px;}
.ovm-cl .ovm-cl-t{margin-left:0;}
.ovm-cl-t.c0{background:#dc2626;}.ovm-cl-t.c1{background:#7c3aed;}.ovm-cl-t.c2{background:#0891b2;}.ovm-cl-t.c3{background:#ca8a04;}.ovm-cl-t.c4{background:#475569;}
.ovm-grid .ovm-r{grid-template-columns:minmax(70px,120px) auto minmax(40px,1fr) 44px;}
.ovm-dots{display:inline-flex;gap:3px;}
.ovm-dots i{width:8px;height:8px;border-radius:50%;border:1.5px solid #c4b5fd;display:inline-block;box-sizing:border-box;}
.ovm-dots i.on{background:#7c3aed;border-color:#7c3aed;}
.ovm-dots-t{font-size:11px;font-weight:700;color:#7c3aed;}
.ovm-grid .ovm-bar i{background:#a78bfa;border-radius:6px;border:0;}
.ovm-rp{padding:5px 4px;border-radius:6px;cursor:pointer;}
.ovm-rp:hover{background:var(--hb-f6f8fb,#f6f8fb);}
.ovm-rp-t{display:flex;align-items:baseline;gap:4px;font-size:11px;color:#64748b;margin-bottom:3px;white-space:nowrap;overflow:hidden;}
.ovm-rp-t b{color:var(--ht-1a2a3a,#1a2a3a);font-size:12px;}
.ovm-rp-t span{margin-left:auto;font-weight:800;font-size:12px;}
.ovs-pick{display:flex;align-items:center;gap:6px;margin:0 0 8px;}
.ovs-pick select{flex:1;min-width:0;font-size:12px;padding:4px 6px;border:1px solid var(--hc-ccd,#ccd);border-radius:6px;background:var(--hb-fff,#fff);color:var(--ht-1a2a3a,#1a2a3a);}
.ovs-pick span{color:#a855f7;font-weight:700;font-size:12px;}
.ov-pfbtn{border-color:#a78bfa !important;color:#6d28d9 !important;font-weight:700;}
.ov-pfbtn.on{background:#7c3aed !important;color:#fff !important;}
.ovm-pf{display:inline-block;font-size:11px;font-weight:700;color:#6d28d9;background:#ede9fe;border-radius:6px;padding:0 6px;margin-right:6px;}
.ovm-col{display:flex;flex-direction:column;gap:12px;min-width:0;}
.ovm-grid .ovm-r.ovm-x{grid-template-columns:minmax(70px,110px) minmax(40px,1fr) 46px minmax(0,150px);}
.ovm-h{font-size:10.5px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ovm-h em{font-style:normal;color:#7c3aed;font-weight:700;}
.ovm-rp-m{font-size:10.5px;color:#94a3b8;margin-top:3px;line-height:1.4;}
.ovm-rp .ovs-uq-b{display:block;margin:0;}
.ovm-rp-m b{color:#64748b;}
.ovm-empty{font-size:12px;color:#94a3b8;padding:6px 2px;}
.ovm-chg-lead{font-size:12px;color:var(--ht-334,#334155);background:#f5f3ff;border-radius:8px;padding:5px 8px;margin:2px 0 6px;}
.ovm-chg-t{font-size:11px;font-weight:700;color:#64748b;margin:6px 0 2px;}
.ovm-chg{display:grid;grid-template-columns:minmax(70px,110px) minmax(0,1fr) 50px;align-items:center;gap:8px;padding:3px 4px;border-radius:6px;cursor:pointer;font-size:11px;}
.ovm-chg:hover{background:var(--hb-f6f8fb,#f6f8fb);}
.ovm-chg-w{color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ovm-chg-w em{font-style:normal;font-weight:700;}
.ovm-chg-w em.nw{color:#7c3aed;}
.ovm-chg-w em.ot{color:#94a3b8;}
.ovm-chg-v{text-align:right;font-weight:800;}
.ovm-chg-v.up{color:#7c3aed;}
.ovm-chg-v.dn{color:#94a3b8;}
.ovs-adv{background:#fffbeb;border-color:#fde68a;}
@media (max-width:560px){.ovm-grid .ovm-r.ovm-x{grid-template-columns:minmax(64px,90px) minmax(30px,1fr) 42px;}.ovm-grid .ovm-r.ovm-x .ovm-h{display:none;}}
.ov-pk-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:10px;background:var(--hb-f8fafc,#f8fafc);margin-bottom:6px;}
.ov-pk-lbl{font-size:11px;font-weight:700;color:var(--ht-667,#667);margin-right:2px;white-space:nowrap;}
.ov-pk-lbl b{color:#1a4fa8;}
.ov-pk-on{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#fff;background:#1a4fa8;border-radius:14px;padding:3px 6px 3px 10px;max-width:260px;}
.ov-pk-on small{font-weight:400;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.ov-pk-on b{cursor:pointer;width:17px;height:17px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.2);font-size:12px;flex:none;}
.ov-pk-on b:hover{background:rgba(255,255,255,.4);}
.ov-pk-on .ov-pk-10{color:#fde68a;}
.ov-pk-none{font-size:12px;color:#94a3b8;}
.ov-pk-add{margin-left:auto;font-size:12px;font-weight:700;padding:4px 12px;border-radius:14px;border:1px dashed #1a4fa8;background:var(--hb-fff,#fff);color:#1a4fa8;cursor:pointer;white-space:nowrap;}
.ov-pk-add.on{border-style:solid;background:#eef4ff;}
.ov-pk-10{font-style:normal;font-size:9.5px;font-weight:700;color:#b45309;margin-left:3px;}
.ov-pk-panel{border:1px solid #c7d7f5;border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--hb-fff,#fff);box-shadow:0 4px 14px rgba(26,79,168,.08);}
.ov-pk-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
.ov-pk-top input{flex:0 1 240px;min-width:0;padding:5px 10px;font-size:12px;border:1px solid var(--hc-ccd,#ccd);border-radius:6px;}
.ov-pk-top .ov-mini{margin-left:auto;}
.ov-pk-lg{font-size:10.5px;color:#94a3b8;}
.ov-pk-g{padding:6px 0;border-top:1px dashed var(--hc-e5eaf0,#e5eaf0);}
.ov-pk-gh{font-size:12px;font-weight:800;color:var(--ht-1a2a3a,#1a2a3a);margin-bottom:4px;display:flex;align-items:center;gap:6px;}
.ov-pk-gh small{font-weight:400;color:#94a3b8;}
.ov-pk-ga{font-size:10.5px;padding:1px 8px;border:1px solid var(--hc-ccd,#ccd);border-radius:10px;background:var(--hb-fff,#fff);color:#64748b;cursor:pointer;}
.ov-pk-ga:hover{border-color:#1a4fa8;color:#1a4fa8;}
.ov-pk-gl{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px;}
.ov-pk-it{font-size:11.5px;color:#475569;padding:4px 8px;border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:6px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ov-pk-it b{color:var(--ht-1a2a3a,#1a2a3a);}
.ov-pk-it:hover{border-color:#1a4fa8;}
.ov-pk-it.on{background:#1a4fa8;border-color:#1a4fa8;color:#dbe7ff;}
.ov-pk-it.on b{color:#fff;}
.ov-pk-it.on .ov-pk-10{color:#fde68a;}
.ov-pk-quick{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-bottom:8px;}
.ov-pk-hint{font-size:10.5px;color:#94a3b8;margin-left:4px;}
.ov-view-btn{padding:5px 14px;border:1px solid var(--hc-cbd5e1,#cbd5e1);background:var(--hb-fff,#fff);border-radius:8px;font-size:12px;font-weight:700;color:var(--ht-475569,#475569);cursor:pointer;}
.ov-view-btn.on{background:#1a4fa8;border-color:#1a4fa8;color:#fff;}
.ov-cnt{font-weight:700;color:var(--ht-1565c0,#1565C0);}
.ov-yes{background:var(--hb-e3f2fd,#e3f2fd);color:var(--ht-1565c0,#1565C0);}
.ov-no{color:#ccc;background:var(--hb-fff,#fff);}
.ov-heavy{background:#1565C0;color:#fff;font-weight:700;}
.etf-log{max-height:140px;overflow:auto;background:#0b1220;color:#cfe3ff;border-radius:8px;padding:8px 12px;font-size:11px;line-height:1.6;margin-top:14px;}
.etf-log .ok{color:#bff7bf;}.etf-log .err{color:#ffb4b4;}
@media(max-width:720px){.etf-grid{grid-template-columns:1fr;}}
.rookie-sec-title{margin:16px 0 10px;font-size:13px;color:var(--ht-334,#334);font-weight:800;}
.rookie-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.rookie-src-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:16px 0 10px;position:relative;z-index:2;}
.rookie-src-head .rookie-sec-title{margin:0;flex:1;min-width:0;}
.rookie-src-tabs{display:flex;gap:6px;flex-shrink:0;position:relative;z-index:3;pointer-events:auto;}
.rookie-src-tab{padding:6px 14px;font-size:12px;font-weight:700;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:8px;background:var(--hb-fff,#fff);color:var(--ht-556,#556);cursor:pointer;position:relative;z-index:1;pointer-events:auto;-webkit-tap-highlight-color:transparent;}
.rookie-src-tab.active{background:#1565C0;border-color:#1565C0;color:#fff;}
.rank-tbl{width:100%;border-collapse:collapse;background:var(--hb-fff,#fff);border:1px solid var(--hc-e5e7ef,#e5e7ef);border-radius:10px;overflow:hidden;}
.chg-tbl{width:100%;border-collapse:collapse;font-size:13px;}
.chg-tbl th{padding:7px 10px;border-bottom:2px solid var(--hc-d0d7e8,#d0d7e8);background:var(--hb-f5f8ff,#f5f8ff);color:var(--ht-334,#334);font-weight:700;white-space:nowrap;text-align:left;}
.chg-tbl td{padding:8px 10px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);vertical-align:top;}
.chg-tbl tbody tr:hover td{background:var(--hb-f8faff,#f8faff);}
.chg-tbl tr.chg-has-change td{background:var(--hb-fffbf0,#fffbf0);}
.chg-tbl tr.chg-has-change:hover td{background:var(--hb-fff5d6,#fff5d6);}
.chg-badge-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.chg-none{color:#aab;font-size:12px;}
.rank-tbl th,.rank-tbl td{padding:8px 10px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);font-size:13px;text-align:left;}
.lr-sub-btn{padding:5px 14px;border:1px solid var(--hc-cbd5e1,#cbd5e1);border-radius:8px;background:var(--hb-fff,#fff);color:var(--ht-556,#556);cursor:pointer;font-size:12px;font-weight:700;}
.lr-sub-btn.active{background:#1565C0;border-color:#1565C0;color:#fff;}
.lr-tbl{width:100%;border-collapse:collapse;font-size:13px;}
.lr-tbl th{padding:7px 10px;border-bottom:2px solid var(--hc-d0d7e8,#d0d7e8);background:var(--hb-f5f8ff,#f5f8ff);color:var(--ht-334,#334);font-weight:700;text-align:right;white-space:nowrap;}
.lr-tbl th:first-child,.lr-tbl th:nth-child(2),.lr-tbl th:nth-child(3),.lr-tbl th:nth-child(4),.lr-tbl th:nth-child(5){text-align:left;}
.lr-tbl td{padding:6px 10px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);text-align:right;white-space:nowrap;}
.lr-tbl td:first-child,.lr-tbl td:nth-child(2),.lr-tbl td:nth-child(3),.lr-tbl td:nth-child(4),.lr-tbl td:nth-child(5){text-align:left;}
.lr-tbl tr:hover td{background:var(--hb-f5f8ff,#f5f8ff);}
.lr-up{color:var(--ht-c0392b,#c0392b);font-weight:700;}.lr-dn{color:#16a34a;font-weight:700;}.lr-flat{color:var(--ht-667,#667);}
.rank-tbl th{background:var(--hb-f8fafc,#f8fafc);color:var(--ht-445,#445);font-weight:700;white-space:nowrap;}
.rank-tbl td.num{text-align:right;font-variant-numeric:tabular-nums;}
.rank-tbl tr:last-child td{border-bottom:none;}
.rank-tbl tbody tr:hover td{background:var(--hb-f0f5ff,#f0f5ff);transition:background .15s;}
.rank-num{display:inline-block;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;font-size:11px;font-weight:700;}
.rank-1{background:var(--hb-ffd700,#FFD700);color:var(--ht-5a3a00,#5a3a00);}
.rank-2{background:#C0C0C0;color:var(--ht-333,#333);}
.rank-3{background:#CD7F32;color:#fff;}
.pr-nav{display:flex;gap:4px;align-items:center;}
.pr-name-link{cursor:pointer;color:var(--ht-1565c0,#1565C0);font-weight:600;border-bottom:1px dashed var(--hc-90caf9,#90caf9);text-underline-offset:2px;}
.pr-name-link:hover{color:var(--ht-0d47a1,#0d47a1);border-bottom-color:#1565C0;}
#prPerfModal .hd .ttl{flex:1;min-width:0;padding-right:8px;}
#prPerfModalTitle .pr-perf-title-link{cursor:pointer;color:var(--ht-1565c0,#1565C0);font-weight:800;text-decoration:underline;text-decoration-color:#90caf9;text-underline-offset:2px;}
#prPerfModalTitle .pr-perf-title-link:hover{color:var(--ht-0d47a1,#0d47a1);}
#prPerfModalTitle .pr-perf-title-rest{font-weight:800;cursor:default;}
.pr-perf-hd-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
#prPerfModalFsBtn{font-family:'Segoe UI Symbol','Noto Sans Symbols2','Apple Symbols',sans-serif;}
#prPerfModal.pr-perf-fs{padding:0;align-items:stretch;min-height:100vh;min-height:100dvh;}
#prPerfModal.pr-perf-fs .box{max-width:none!important;width:100%!important;height:100vh!important;height:100dvh!important;max-height:none!important;min-height:100vh;min-height:100dvh;border-radius:0;display:flex;flex-direction:column;border-width:0;}
#prPerfModal.pr-perf-fs .hd{flex-shrink:0;border-radius:0;}
#prPerfModal.pr-perf-fs #prPerfModalBody{flex:1;min-height:0;overflow:auto;padding:16px 20px 24px!important;width:100%;box-sizing:border-box;}
#prPerfModalBody .pr-perf-svg{width:100%;max-width:100%;height:auto;display:block;aspect-ratio:760 / 320;max-height:min(68vh,600px);}
#prPerfModal.pr-perf-fs #prPerfModalBody .pr-perf-svg{max-height:calc(100dvh - 108px);max-height:calc(100vh - 108px);}
.dv-ctrl .pr-nav button{padding:5px 10px;min-width:36px;border:1px solid var(--hc-b9c6d3,#b9c6d3);border-radius:6px;background:var(--hb-fff,#fff);color:var(--ht-1e3a5f,#1e3a5f);cursor:pointer;font-size:15px;line-height:1.2;font-weight:700;}
.dv-ctrl .pr-nav button:hover{background:var(--hb-f0f4fa,#f0f4fa);border-color:#90a4b7;}
.dvh-popup{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:10300;padding:16px;}
.dvh-popup.active{display:flex;}
.dvh-popup .box{background:var(--hb-fff,#fff);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.28);width:100%;max-width:520px;max-height:86vh;overflow-y:auto;}
.dvh-popup .hd{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:11px 16px;background:var(--hb-f0f4fa,#f0f4fa);border-bottom:1px solid var(--hc-dde5ef,#dde5ef);border-radius:12px 12px 0 0;z-index:1;}
.dvh-popup .ttl{font-weight:800;font-size:14px;color:var(--ht-1e3a5f,#1e3a5f);flex-shrink:0;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dvh-popup .hd-badges{display:flex;gap:6px;align-items:center;flex:1 1 auto;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:flex-end;scrollbar-width:none;}
.dvh-popup .hd-badges::-webkit-scrollbar{display:none;}
.dvh-popup .hd-close{flex-shrink:0;}
.dvh-popup .cls{border:none;background:none;font-size:20px;cursor:pointer;color:var(--ht-556,#556);line-height:1;padding:0 4px;}
.dvh-popup .body{padding:14px 16px;}
@media (max-width:640px){
  /* 手機直向：分類/加入清單等按鈕改獨立換到第二排，避免緊貼右上角關閉鈕造成誤觸 */
  .dvh-popup .hd{flex-wrap:wrap;row-gap:8px;}
  .dvh-popup .ttl{order:1;flex:1 1 0;min-width:0;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.35;}
  .dvh-popup .hd-close{order:2;margin-left:auto;padding:8px 10px;margin-top:-8px;margin-bottom:-8px;margin-right:-8px;}
  .dvh-popup .hd-badges{order:3;flex-basis:100%;justify-content:flex-start;flex-wrap:wrap;overflow:visible;row-gap:6px;}
}
/* 個股資訊彈窗 (s310) */
.pf-qadd-mbtn{flex-shrink:0;font-size:17px;padding:0 2px;border:0;background:transparent;cursor:pointer;line-height:1;opacity:.5;filter:grayscale(.6);transition:opacity .15s,filter .15s;}
.pf-qadd-mbtn:hover{opacity:1;filter:none;}
.ez-dark .pf-qadd-mbtn{opacity:.6;}
#pfModal{z-index:10350;} /* 可從個股資訊彈窗（同為 dvh-popup 10300、DOM 較後）開啟，需蓋在其上 */
#s310Modal .box{max-width:780px;overflow:hidden;display:flex;flex-direction:column;max-height:86vh;}
#s310Modal .hd,#usModal .hd,#jpModal .hd{flex-shrink:0;cursor:move;user-select:none;touch-action:none;}
#s310Modal .body{padding:14px 16px;overflow-y:auto;flex:1;min-height:0;}
#s310FsBtn,#usFsBtn,#jpFsBtn{font-family:'Segoe UI Symbol','Noto Sans Symbols2','Apple Symbols',sans-serif;}
#s310Modal.s310-fs,#usModal.s310-fs,#jpModal.s310-fs{padding:0;align-items:stretch;min-height:100vh;min-height:100dvh;}
#s310Modal.s310-fs .box,#usModal.s310-fs .box,#jpModal.s310-fs .box{max-width:none!important;width:100%!important;height:100vh!important;height:100dvh!important;max-height:none!important;min-height:100vh;min-height:100dvh;border-radius:0;}
#s310Modal.s310-fs .hd,#usModal.s310-fs .hd,#jpModal.s310-fs .hd{border-radius:0;cursor:default;}
#s310Modal.s310-dragged .box,#usModal.s310-dragged .box,#jpModal.s310-dragged .box{margin:0;}
#usModal .box,#jpModal .box{overflow:hidden;display:flex;flex-direction:column;max-height:86vh;}
#usModal .body,#jpModal .body{padding:14px 16px;overflow-y:auto;flex:1;min-height:0;}
.s310-up{color:var(--ht-b71c1c,#b71c1c);font-weight:700;}
.s310-dn{color:var(--ht-1b5e20,#1b5e20);font-weight:700;}
.s310-chip-sm{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--hb-e3f2fd,#e3f2fd);color:var(--ht-1565c0,#1565C0);font-size:16px;font-weight:700;font-family:monospace;margin-right:6px;}
.s310-card{background:var(--hb-fff,#fff);border:1px solid var(--hc-e5e7ef,#e5e7ef);border-radius:10px;overflow:hidden;box-shadow:0 1px 5px rgba(0,0,0,.05);margin-bottom:10px;}
.s310-card-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--hb-f8fafc,#f8fafc);border-bottom:1px solid var(--hc-eef1f7,#eef1f7);flex-wrap:wrap;}
.s310-card-hd h3{margin:0;font-size:13px;color:var(--ht-223,#223);font-weight:700;}
.s310-card h3{margin:0;padding:10px 12px;background:var(--hb-f8fafc,#f8fafc);border-bottom:1px solid var(--hc-eef1f7,#eef1f7);font-size:13px;color:var(--ht-223,#223);font-weight:700;}
.s310-card .bd{padding:12px;}
.s310-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.s310-tbl th,.s310-tbl td{padding:6px 8px;border-bottom:1px solid var(--hc-f0f2f6,#f0f2f6);text-align:left;}
.s310-tbl th{color:var(--ht-556,#556);background:var(--hb-fbfcfe,#fbfcfe);}
.s310-extbtn{padding:6px 12px;border:2px solid #1565C0;background:var(--hb-fff,#fff);color:var(--ht-1565c0,#1565C0);border-radius:8px;font-weight:700;font-size:12px;cursor:pointer;font-family:inherit;}
.s310-extbtn:hover{background:var(--hb-e3f2fd,#e3f2fd);}
.s310-extbtn.copilot{border-color:#7b5ea7;color:#7b5ea7;}
.s310-extbtn.copilot:hover{background:var(--hb-f3eeff,#f3eeff);}
.s310-extbtn.gemini{border-color:#1a73e8;color:var(--ht-1a73e8,#1a73e8);}
.s310-extbtn.gemini:hover{background:var(--hb-e8f0fe,#e8f0fe);}
.s310-extbtn.ic{border-color:#0f766e;color:var(--ht-0f766e,#0f766e);}
.s310-extbtn.ic:hover{background:var(--hb-f0fdfa,#f0fdfa);}
#s310BtnTip{position:fixed;background:#1a1a2e;color:#fff;font-size:12px;white-space:nowrap;padding:5px 10px;border-radius:7px;pointer-events:none;z-index:99999;box-shadow:0 3px 10px rgba(0,0,0,.3);display:none;}
#s310BtnTip::before{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-bottom-color:#1a1a2e;}
.s310-copilot-pop{position:absolute;z-index:9999;min-width:320px;max-width:420px;background:var(--hb-fff,#fff);border:1px solid var(--hc-d0c4e8,#d0c4e8);border-radius:12px;box-shadow:0 8px 32px rgba(80,40,120,.15);padding:14px 16px;display:none;}
.s310-copilot-pop.open{display:block;}
.s310-copilot-pop textarea{width:100%;box-sizing:border-box;font-size:12px;line-height:1.55;border:1px solid var(--hc-d0c4e8,#d0c4e8);border-radius:8px;padding:8px 10px;resize:vertical;min-height:110px;color:var(--ht-334,#334);outline:none;font-family:inherit;}
.s310-copilot-pop-btns{display:flex;gap:8px;margin-top:8px;}
.s310-copilot-pop-btns button{flex:1;padding:7px 0;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;}
.s310-cop-copy{border:1px solid #7b5ea7;background:var(--hb-fff,#fff);color:#7b5ea7;}
.s310-cop-copy:hover{background:var(--hb-f3eeff,#f3eeff);}
.s310-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hb-eef1f7,#eef1f7);border:1px solid var(--hc-eef1f7,#eef1f7);border-radius:6px;overflow:hidden;margin-bottom:4px;}
.s310-info-item{display:flex;align-items:flex-start;background:var(--hb-fff,#fff);}
.s310-info-label{padding:5px 8px;color:var(--ht-667,#667);font-size:12px;white-space:nowrap;background:var(--hb-f8faff,#f8faff);flex-shrink:0;width:72px;}
.s310-info-value{padding:5px 8px;font-weight:600;font-size:13px;word-break:break-word;min-width:0;}
@media(max-width:500px){.s310-info-grid{grid-template-columns:1fr;}}
.s310-cop-open{border:none;background:linear-gradient(90deg,#7b5ea7,#5065c4);color:#fff;}
.s310-cop-open:hover{opacity:.88;}
.s310-hint{font-size:12px;color:#889;}
.dv-etf-nm{cursor:pointer;color:var(--ht-1a56db,#1a56db);text-decoration:underline;text-decoration-color:#bcd;text-underline-offset:2px;}
.dv-etf-nm:hover{color:var(--ht-1e429f,#1e429f);}
.dv-year .dv-etf-nm{font-size:inherit;}
.etf-card .etf-div12-btn{margin-left:8px;padding:6px 12px;font-size:12px;border-radius:6px;cursor:pointer;border:1px solid #2b6cb0;background:var(--hb-fff,#fff);color:var(--ht-2b6cb0,#2b6cb0);font-weight:600;}
.etf-card .etf-div12-btn:hover{background:var(--hb-f0f7ff,#f0f7ff);}
.n400-lineup-code{cursor:pointer;}
.n400-lk-ul{list-style:none;margin:10px 0 0;padding:0;max-height:min(52vh,440px);overflow-y:auto;border:1px solid var(--hc-e5e7ef,#e5e7ef);border-radius:8px;background:var(--hb-fff,#fff);}
.n400-lk-row{padding:9px 12px;border-bottom:1px solid var(--hc-eef1f7,#eef1f7);cursor:pointer;display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;font-size:13px;}
.n400-lk-row:hover{background:var(--hb-f0f7ff,#f0f7ff);}
.n400-lk-row:last-child{border-bottom:none;}
.n400-lk-code{font-weight:800;color:var(--ht-1565c0,#1565C0);min-width:58px;}
.n400-lk-name{flex:1;min-width:0;color:var(--ht-223,#223);word-break:break-word;}
.n400-lk-mk{font-size:11px;color:#889;flex-shrink:0;}
.n400-lk-hint{padding:14px 12px;color:#778;font-size:13px;}
.n400-modal{position:fixed;inset:0;background:rgba(0,0,0,.38);display:none;align-items:center;justify-content:center;z-index:10050;padding:18px;}
.n400-modal.active{display:flex;}
.n400-modal .box{background:var(--hb-fff,#fff);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.28);max-width:980px;width:100%;overflow:hidden;border:1px solid var(--hc-dde5ef,#dde5ef);}
.n400-modal .hd{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--hb-f8fafc,#f8fafc);border-bottom:1px solid var(--hc-eef2f7,#eef2f7);}
.n400-modal .ttl{font-weight:800;color:var(--ht-223,#223);font-size:13px;}
.n400-modal .cls{border:none;background:none;font-size:20px;cursor:pointer;color:var(--ht-556,#556);line-height:1;}
/* ── 我的ETF tab ── */
.myetf-wrap{width:100%;}
.myetf-sec{font-weight:700;font-size:13px;color:var(--ht-334,#334);margin:18px 0 8px;}
.myetf-sec:first-child{margin-top:0;}
.myetf-search-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px;}
.myetf-inp{flex:1;min-width:160px;max-width:300px;padding:7px 10px;border:1px solid var(--hc-d7dce4,#d7dce4);border-radius:8px;font-size:13px;outline:none;}
.myetf-inp:focus{border-color:#1a5ec8;}
.myetf-type-sel{padding:7px 10px;border:1px solid var(--hc-d7dce4,#d7dce4);border-radius:8px;font-size:13px;background:var(--hb-fff,#fff);cursor:pointer;}
.myetf-result-box{border:1px solid var(--hc-e5eaf0,#e5eaf0);border-radius:8px;background:var(--hb-fff,#fff);max-height:260px;overflow-y:auto;margin-bottom:14px;}
.myetf-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--hc-f0f3f7,#f0f3f7);font-size:13px;}
.myetf-row:last-child{border-bottom:none;}
.myetf-row:hover{background:var(--hb-f7f9fc,#f7f9fc);}
.myetf-code{font-weight:700;color:var(--ht-1a5ec8,#1a5ec8);min-width:68px;cursor:pointer;}
.myetf-name{flex:1;color:var(--ht-334,#334);}
.myetf-mkt{font-size:11px;color:#889;min-width:34px;}
.myetf-add-btn{font-size:11px;padding:3px 10px;border-radius:6px;border:1px solid #1a5ec8;background:var(--hb-fff,#fff);color:var(--ht-1a5ec8,#1a5ec8);cursor:pointer;white-space:nowrap;}
.myetf-add-btn:hover{background:var(--hb-e8f0fe,#e8f0fe);}
.myetf-already{font-size:11px;color:#aaa;padding:3px 6px;}
.myetf-pr{font-size:11px;min-width:100px;text-align:right;white-space:nowrap;}
.myetf-pr-val{font-weight:600;color:var(--ht-334,#334);}
.myetf-pr-chg{margin-left:3px;}
.myetf-pr-chg.up{color:var(--ht-c0392b,#c0392b);}
.myetf-pr-chg.dn{color:#27ae60;}
.myetf-tbl{width:100%;border-collapse:collapse;font-size:13px;}
.myetf-tbl th{text-align:left;padding:7px 10px;background:var(--hb-f0f4f8,#f0f4f8);font-weight:600;color:var(--ht-445,#445);border-bottom:2px solid var(--hc-d7dce4,#d7dce4);white-space:nowrap;}
.myetf-tbl th.myetf-cb-col,.myetf-tbl td.myetf-cb-col{width:36px;padding:7px 6px 7px 10px;text-align:center;}
.myetf-tbl td{padding:7px 10px;border-bottom:1px solid var(--hc-f0f3f7,#f0f3f7);vertical-align:middle;}
.myetf-tbl tbody tr{cursor:grab;user-select:none;}
.myetf-tbl tbody tr:active{cursor:grabbing;}
.myetf-tbl tr:hover td{background:var(--hb-f7f9fc,#f7f9fc);}
.myetf-tbl tr.myetf-checked td{background:var(--hb-fff3f3,#fff3f3);}
.myetf-tbl tr.myetf-drag-over td{background:var(--hb-e8f0fe,#e8f0fe);border-top:2px solid #1565C0;}
.myetf-tbl tr.myetf-dragging{opacity:.4;}
.myetf-badge{font-size:10px;padding:2px 7px;border-radius:4px;background:var(--hb-e8f0fe,#e8f0fe);color:var(--ht-1a5ec8,#1a5ec8);}
.myetf-badge.ac{background:var(--hb-fce4ec,#fce4ec);color:var(--ht-c2185b,#c2185b);}
.myetf-badge.rk{background:var(--hb-f3e5f5,#f3e5f5);color:var(--ht-7b1fa2,#7b1fa2);}
.myetf-badge.mx{background:var(--hb-e8f5e9,#e8f5e9);color:var(--ht-2e7d32,#2e7d32);}
.myetf-type-sel{font-size:11px;padding:2px 4px;border-radius:5px;border:1px solid var(--hc-ccd,#ccd);background:var(--hb-f8f9fb,#f8f9fb);color:var(--ht-445,#445);cursor:pointer;}
.myetf-rm-sel-btn{font-size:12px;padding:5px 14px;border-radius:7px;border:1px solid #e57373;background:var(--hb-fff,#fff);color:var(--ht-c62828,#c62828);cursor:pointer;font-weight:700;}
.myetf-rm-sel-btn:hover{background:var(--hb-ffebee,#ffebee);}
.myetf-rm-sel-btn:disabled{opacity:.5;cursor:not-allowed;}
.myetf-empty{padding:24px;text-align:center;color:#999;font-size:13px;}
.s310-add-stock-btn{padding:4px 11px;font-size:12px;border:1px solid #1565C0;background:var(--hb-fff,#fff);color:var(--ht-1565c0,#1565C0);border-radius:6px;cursor:pointer;font-weight:700;white-space:nowrap;}
.s310-add-stock-btn:hover{background:var(--hb-e3f2fd,#e3f2fd);}
.s310-add-stock-btn.added{border-color:#2e7d32;color:var(--ht-2e7d32,#2e7d32);}
.s310-add-etf-btn{padding:4px 11px;font-size:12px;border:1px solid #7b1fa2;background:var(--hb-fff,#fff);color:var(--ht-7b1fa2,#7b1fa2);border-radius:6px;cursor:pointer;font-weight:700;white-space:nowrap;margin-right:4px;}
.s310-add-etf-btn:hover{background:var(--hb-f3e5f5,#f3e5f5);}
.s310-add-etf-btn.added{background:var(--hb-f3e5f5,#f3e5f5);opacity:.8;}
.mystock-rm-btn{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:11px;padding:5px 7px;border-radius:5px;border:1px solid #e57373;background:var(--hb-fff,#fff);color:var(--ht-c62828,#c62828);cursor:pointer;}
.mystock-rm-btn:hover{background:var(--hb-ffebee,#ffebee);}
.mystock-cat-tabs{display:flex;gap:5px;flex-wrap:wrap;padding:6px 0 10px;}
.mystock-cat-tab{padding:3px 13px;border-radius:20px;border:1px solid var(--hc-ccd,#ccd);background:var(--hb-f5f7fa,#f5f7fa);font-size:12px;cursor:pointer;font-weight:600;color:var(--ht-556,#556);transition:background .15s,border-color .15s,opacity .15s;user-select:none;white-space:nowrap;}
.mystock-cat-tab:hover{background:var(--hb-e8edf5,#e8edf5);border-color:#9ab;}
.mystock-cat-tab.active{background:#1a4fa8;color:#fff;border-color:#1a4fa8;}
.mystock-cat-tab.cat-add{border-style:dashed;color:#888;background:var(--hb-fff,#fff);}
.mystock-cat-tab.cat-add:hover{background:var(--hb-f0f4ff,#f0f4ff);border-color:#99b;}
.mystock-cat-tab[draggable="true"]{cursor:grab;}
.mystock-cat-tab[draggable="true"].active{cursor:grab;}
.mystock-cat-tab.cat-dragging{opacity:.35;}
/* ── 美股個股彈窗 (usModal) ── */
#usModal .box{max-width:680px;overflow:hidden;display:flex;flex-direction:column;max-height:88vh;}
#usModal .hd{flex-shrink:0;}
#usModal .body{padding:14px 16px;overflow-y:auto;flex:1;min-height:0;}
.us-add-list-btn{padding:4px 11px;font-size:12px;border:1px solid #283593;background:var(--hb-fff,#fff);color:var(--ht-283593,#283593);border-radius:6px;cursor:pointer;font-weight:700;white-space:nowrap;}
.us-add-list-btn:hover{background:var(--hb-e8eaf6,#e8eaf6);}
.us-add-list-btn.jp-theme{border-color:#dc2626;color:var(--ht-dc2626,#dc2626);}
.us-add-list-btn.jp-theme:hover{background:var(--hb-fee2e2,#fee2e2);}
.us-add-list-btn.added{border-color:#2e7d32;color:var(--ht-2e7d32,#2e7d32);background:var(--hb-fff,#fff);}
.chart-day-btn{padding:1px 6px;font-size:10px;border:1px solid var(--hc-ccc,#ccc);background:var(--hb-fff,#fff);color:var(--ht-666,#666);border-radius:3px;cursor:pointer;line-height:1.6;white-space:nowrap;}
.chart-day-btn:hover{border-color:#888;color:var(--ht-222,#222);}
.chart-day-btn.active{border-color:#1a237e;background:var(--hb-e8eaf6,#e8eaf6);color:var(--ht-1a237e,#1a237e);font-weight:700;}
.mystock-cat-tab.cat-drag-over{border-color:#1a4fa8;background:var(--hb-ddeaff,#ddeaff);box-shadow:inset 3px 0 0 #1a4fa8;}
.mystock-cat-rm{margin-left:5px;background:none;border:none;cursor:pointer;color:#aaa;font-size:11px;padding:0 1px;line-height:1;vertical-align:middle;}
.mystock-cat-rm:hover{color:var(--ht-c62828,#c62828);}
.mystock-cat-sel,.myetf-cat-sel{font-size:11px;padding:2px 4px;border-radius:5px;border:1px solid var(--hc-ccd,#ccd);background:var(--hb-f8f9fb,#f8f9fb);color:var(--ht-445,#445);max-width:90px;cursor:pointer;}
.mystock-sort-th{cursor:pointer;user-select:none;white-space:nowrap;}
.mystock-sort-th:hover{background:var(--hb-eef2f8,#eef2f8);}
.mystock-sort-th .sa{margin-left:3px;font-size:9px;color:var(--ht-1a4fa8,#1a4fa8);}
html,body{width:100%;overflow-x:hidden;}
.pf-realized-section{margin-top:20px;border-top:2px dashed var(--hc-d0d7e8,#d0d7e8);padding-top:14px;}
.pf-realized-title{font-size:13px;font-weight:700;color:var(--ht-0f766e,#0f766e);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.pf-realized-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--hb-dcfce7,#dcfce7);color:var(--ht-166534,#166534);border:1px solid var(--hc-bbf7d0,#bbf7d0);}
.pf-unrealized-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--hb-dbeafe,#dbeafe);color:var(--ht-1e40af,#1e40af);border:1px solid var(--hc-93c5fd,#93c5fd);}
.pf-summary-item.pf-realized-item{background:var(--hb-f0fdf4,#f0fdf4);}
.lr-footer{margin-top:auto;padding-top:28px;font-size:11px;color:#94a3b8;line-height:1.6;text-align:center;}
.lr-footer a{color:var(--ht-2563eb,#2563eb);text-decoration:none;}
.lr-footer a:hover{text-decoration:underline;}
/* ── 手機版響應式補強：無包裝表格避免被 html,body{overflow-x:hidden} 裁切；行內多欄表單/圖表併排窄螢幕改單欄 ── */
/* 已有 overflow-x:auto 包裝div 或本身有凍結欄位/表頭(sticky)的表格排除，避免破壞既有 sticky 定位 */
@media(max-width:640px){
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .tip-tbl,.mklk-ind-tbl,.rd-tbl,.dvy-table,.etf-tbl,.overlap-tbl,
  div[style*="overflow"] table{display:table;overflow-x:visible;}
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:minmax(180px,220px) 1fr"]{grid-template-columns:1fr!important;}
}
  
/* 摘要列（最強／最弱）的代號晶片：沿用 .etf-chip 外觀，縮小以配合 12px 摘要文字 */
.sum-stk-chip{cursor:pointer;font-size:11px;padding:1px 7px;line-height:1.5;vertical-align:1px;}
