/* Canonical CSS owner: controls. Historical layers consolidated 2026-08-02. */ .lucide { width: 18px; height: 18px; flex: 0 0 auto; stroke-width: 1.75; } @media (max-width: 720px) { .header-command-group .command-button { width: 100%; min-height: 38px; justify-content: flex-start; padding: 0px 10px; border-color: transparent; background: transparent; } } button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: rgba(8, 127, 174, 0.48) solid 2px; outline-offset: 2px; } .icon-button:active { transform: translateY(1px) scale(0.985); box-shadow: none; } .button:disabled, .icon-button:disabled { cursor: not-allowed; opacity: 0.58; transform: none; box-shadow: none; } .button.danger-button { border-color: rgb(226, 170, 163); color: rgb(185, 54, 39); } .button.danger-button:hover { border-color: var(--coral); background: var(--coral-soft); color: rgb(167, 44, 30); } .date-input:focus, .search-field input:focus { border-color: var(--blue); box-shadow: rgba(8, 127, 174, 0.13) 0px 0px 0px 2px; } .form-field { display: grid; gap: 7px; font-weight: 650; } .command-button .lucide { width: 16px; height: 16px; } .sidebar-collapse-button:hover { background: rgb(241, 244, 247); color: var(--text-primary); } .mobile-market-selector { display: none; } .button:focus-visible, .icon-button:focus-visible, .sidebar-collapse-button:focus-visible { outline-color: rgba(29, 101, 193, 0.48); } body.sidebar-collapsed .sidebar-collapse-button .lucide { transform: rotate(180deg); } @media (min-width: 721px) and (max-width: 1279px) { .command-button { width: 32px; padding: 0px; } .command-button > span { display: none; } } @media (min-width: 721px) and (max-width: 1023px) { .sidebar-collapse-button span { display: none; } .sidebar-collapse-button { justify-content: center; padding: 0px; display: none; } } @media (max-width: 720px) { .header-command-group .button.primary { border-color: var(--action); background: var(--action); } .mobile-market-selector > span { display: inline-flex; align-items: center; gap: 7px; color: var(--text-secondary); font-size: 12px; } .mobile-market-selector > span .lucide { width: 16px; height: 16px; color: var(--action); } .mobile-market-selector > span b { font-weight: 650; } .mobile-market-selector > .lucide { width: 16px; height: 16px; pointer-events: none; } } .stock-heaven-button { display: inline-flex; align-items: center; gap: 5px; } .stock-heaven-button .lucide { width: 15px; height: 15px; } @media (max-width: 720px) { .stock-heaven-button span { display: none; } .stock-heaven-button { width: 36px; padding: 0px; justify-content: center; } } .icon-button:hover { border-color: rgb(148, 181, 216); background: rgb(248, 251, 255); color: var(--action-hover); box-shadow: none; } .button .lucide, .icon-button .lucide { width: 16px; height: 16px; stroke-width: 1.8; } .command-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0px 10px; min-height: 36px; } .form-field > span { color: rgb(51, 65, 80); font-size: 12.5px; font-weight: 670; } @media (min-width: 721px) and (max-width: 1279px) { .sidebar-collapse-button span { display: none; } .sidebar-collapse-button { justify-content: center; padding: 0px; } } @media (max-width: 720px) { .header-menu-button { width: 34px; min-height: 34px; border-color: var(--border); display: grid; } .mobile-market-selector select { width: 100%; height: 38px; padding: 0px 4px; border: 0px; outline: 0px; background: transparent; color: var(--text-primary); font-weight: 680; text-align: right; appearance: none; font-size: 13px; } .button, .icon-button { min-height: 42px; } .form-field input, .form-field select, .search-field input { min-height: 44px; font-size: 16px; } } @media (prefers-reduced-motion: reduce) { .button, .icon-button { animation: auto ease 0s 1 normal none running none; transition: none; } } .text-button { padding: 2px; border: 0px; background: transparent; color: var(--blue); cursor: pointer; font-size: 12px; } @media (max-width: 860px) { .search-field { min-width: 180px; flex: 1 1 0%; } .search-field input { width: 100%; } } .search-field input { width: 220px; padding: 0px 10px; border: 1px solid var(--line-strong); border-radius: 4px; outline: none; height: 36px; background: var(--surface); color: var(--text-primary); font-size: 12.5px; } .checkbox-control { min-height: 34px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; } #heartReveal #interpretHeartButton { opacity: 0; transition: opacity 1s; } #heartReveal #interpretHeartButton.is-ready { opacity: 1; } @media (max-width: 860px) { .date-input { min-width: 134px; flex: 1 1 0%; } } .date-input { width: 138px; height: 34px; padding: 0px 8px; background: var(--surface); color: var(--text); font-weight: 650; min-height: var(--control-height); border-color: var(--border-strong); border-radius: var(--radius-md); box-shadow: none; } .icon-button { background: var(--surface); cursor: pointer; transition: transform var(--motion-fast) var(--ease-out), border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, color var(--motion-fast) ease, box-shadow var(--motion-fast) ease; padding: 0px; display: grid; place-items: center; font-size: 22px; line-height: 1; width: 36px; color: rgb(68, 83, 99); min-height: var(--control-height); border-color: var(--border-strong); border-radius: var(--radius-md); box-shadow: none; } .button { cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: var(--control-height); border-color: var(--border-strong); border-radius: var(--radius-md); box-shadow: none; padding: 0px 12px; background: var(--surface-raised); color: var(--xb-gray-700); font-size: 12px; font-weight: 620; transition: border-color var(--duration-fast), color var(--duration-fast), background var(--duration-fast), transform var(--duration-fast); } .button:hover { box-shadow: none; border-color: rgb(184, 199, 232); color: var(--primary); background: var(--xb-gray-25); } .button:active { box-shadow: none; transform: translateY(1px); } .button.primary { border-color: var(--primary); background: var(--primary); color: rgb(255, 255, 255); } .button.primary:hover { border-color: var(--primary-hover); background: var(--primary-hover); color: rgb(255, 255, 255); } .form-field input { width: 100%; min-width: 0px; height: 40px; padding: 0px 10px; outline: none; border-color: var(--border-strong); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: none; } .form-field select, .search-field { border-color: var(--border-strong); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: none; } .form-field textarea { width: 100%; min-height: 104px; resize: vertical; padding: 9px 10px; color: var(--text); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; line-height: 1.6; outline: none; border-color: var(--border-strong); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: none; } .form-field input:focus, .form-field select:focus, .form-field textarea:focus, .search-field:focus-within { border-color: rgb(142, 172, 239); box-shadow: rgba(53, 106, 230, 0.1) 0px 0px 0px 3px; } @media (max-width: 720px) { .module-nav .sidebar-collapse-button { display: none; } .mobile-market-selector:not([hidden]) { position: relative; display: grid; grid-template-columns: auto minmax(0px, 1fr) 18px; align-items: center; gap: 8px; padding: 0px 11px; background: var(--surface); height: 44px; border-color: var(--border); border-radius: 7px; box-shadow: var(--shadow-soft); margin-bottom: 8px; } } .date-input::-webkit-calendar-picker-indicator { opacity: 0.48; } .header-command-group .command-button .lucide { width: 14px; height: 14px; } @media (min-width: 1280px) and (max-width: 1510px) { .header-command-group .command-button { width: 31px; padding: 0px; } .header-command-group .command-button > span { display: none; } } .toolbar-controls .search-field { height: 34px; } .sidebar-collapse-button { width: 100%; cursor: pointer; text-align: left; min-height: 38px; display: flex; align-items: center; gap: 8px; margin: auto -8px -8px; padding: 10px 16px; border-right: 0px; border-bottom: 0px; border-left: 0px; border-image: none; border-top: 1px solid var(--r2-line-soft); border-radius: 0px; background: rgb(255, 255, 255); color: var(--r2-sub); font-size: 12px; } body.sidebar-collapsed .sidebar-collapse-button span { display: none; } body.sidebar-collapsed .sidebar-collapse-button { padding: 0px; justify-content: center; padding-inline: 0px; } .header-menu-button { width: 30px; min-height: 30px; height: 30px; padding: 0px; border: 1px solid var(--r2-line); border-radius: 7px; background: rgb(255, 255, 255); color: rgb(75, 85, 99); box-shadow: none; } .header-command-group .command-button { min-height: 30px; height: 30px; padding: 0px 10px; border: 1px solid var(--r2-line); border-radius: 7px; background: rgb(255, 255, 255); color: rgb(55, 65, 81); font-size: 12px; font-weight: 500; box-shadow: none; } .header-command-group .command-button.primary { border-color: var(--r2-blue); background: var(--r2-blue); color: rgb(255, 255, 255); } @media (max-width: 1023px) and (min-width: 721px) { .sidebar-collapse-button span { display: none; } .sidebar-collapse-button { justify-content: center; padding-inline: 0px; } } button { font: inherit; letter-spacing: 0px; cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: none; color: inherit; } input, select, textarea { border-radius: 6px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; letter-spacing: 0px; font-family: inherit; font-size: 13px; color: var(--ink); } .seg button { padding: 4px 12px; border-radius: 6px; font-size: 12px; color: var(--sub); } .seg button.on { background: rgb(255, 255, 255); color: var(--ink); font-weight: 600; box-shadow: rgba(0, 0, 0, 0.08) 0px 1px 2px; } .seg button .n { font-size: 11px; color: var(--faint); margin-left: 2px; } .seg button.on .n { color: var(--blue); } .search input { border-width: medium; border-style: none; border-color: currentcolor; border-image: none; outline: none; width: 150px; font-size: 12.5px; } .field input[type="text"], .field select { width: 100%; border: 1px solid var(--line); border-radius: 7px; padding: 8px 10px; outline: none; } .field textarea { width: 100%; border: 1px solid var(--line); border-radius: 7px; padding: 8px 10px; outline: none; min-height: 90px; resize: vertical; } .field input:focus, .field textarea:focus { border-color: var(--blue-line); } .method button { padding: 6px 18px; border-radius: 7px; font-size: 13px; color: var(--sub); font-weight: 600; display: flex; align-items: center; gap: 6px; } .method button.on { background: var(--blue); color: rgb(255, 255, 255); } .factor input[type="range"] { flex: 1 1 0%; accent-color: var(--blue); } .cond input[type="text"], .cond select { border: 1px solid var(--line); border-radius: 6px; padding: 4px 8px; width: 76px; font-size: 12px; } .chat-input { display: flex; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--line-soft); } .chat-input input { flex: 1 1 0%; border: 1px solid var(--line); border-radius: 8px; padding: 9px 12px; outline: none; } .chat-input input:focus { border-color: var(--blue-line); } @media (max-width: 720px), (max-width: 1023px) and (max-height: 600px) { .sidebar-collapse-button { display: none; } } :root[data-theme="dark"] :is(.module-tab, .sidebar-collapse-button, .nav-group-label) { color: var(--text-secondary); } :root[data-theme="dark"] :is(.icon-button, .button, .btn, .date-input, .search, .sidebar-collapse-button, input, textarea, select) { border-color: var(--border); background-color: var(--surface); color: var(--text-primary); } :root[data-theme="dark"] .header-date-group .date-input { background-color: transparent; } :root[data-theme="dark"] :is(input, textarea, select)::placeholder { color: var(--text-tertiary); } :root[data-theme="dark"] :is(.icon-button, .button, .btn):hover:not(:disabled) { border-color: var(--blue-line); background-color: var(--surface-muted); color: var(--action); } :root[data-theme="dark"] :is(.button.primary, .btn.primary) { border-color: var(--action); background: var(--action); color: var(--on-action); } :root[data-theme="dark"] :is(.button.primary, .btn.primary):hover:not(:disabled) { border-color: var(--action-hover); background: var(--action-hover); color: var(--on-action); } :root[data-theme="dark"] :is(.seg, .segmented, .filter-segment) { border-color: var(--border); background: var(--surface-muted); } :root[data-theme="dark"] :is(.seg button.on, .seg button.active, .segment.active, .filter-segment button.active) { background: var(--surface-subtle); color: var(--text-primary); box-shadow: var(--control-shadow); } @media (min-width: 721px) { .header-menu-button { display: none; } }