/* ============================================================
   style-dark.css  --  DividendDesk Theme (Claude Design inspired)
   haitou (portfolio app) overlay

   - Loaded AFTER style.css
   - Uses !important to override inline <style> blocks
   - Remove this <link> to revert to original mode
   ============================================================ */

/* ===== Google Fonts ===== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');

/* ===== Base ===== */
body {
  background: #f5f7fa !important;
  color: #333 !important;
  font-family: 'Inter', 'Noto Sans JP', 'Helvetica Neue', Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* ===== Header / Footer ===== */
header {
  background: #366CAB !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1) !important;
}
header h1 {
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

footer {
  background: #2c3e50 !important;
  color: rgba(255,255,255,0.7) !important;
}

footer a {
  color: rgba(255,255,255,0.7) !important;
}
footer a:hover {
  color: #ffffff !important;
}

/* ===== Navigation (hamburger menu bg) ===== */
@media (max-width: 900px) {
  .app-nav {
    background: #2c5f9e !important;
  }
}

.app-nav-link:hover {
  color: #f59e0b !important;
}
.app-nav-link.active {
  color: #ffffff !important;
  border-bottom: 3px solid #f59e0b !important;
}

/* ===== Buttons ===== */
.btn-primary {
  background: #366CAB !important;
  border-color: #366CAB !important;
  border-radius: 4px !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-weight: 600 !important;
  transition: all 0.2s ease !important;
}
.btn-primary:hover {
  background: #2c5f9e !important;
  border-color: #2c5f9e !important;
  box-shadow: 0 2px 6px rgba(54,108,171,0.25) !important;
}

.btn-secondary {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-secondary:hover {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
}

.btn-login {
  background: #36AB59 !important;
  color: #ffffff !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-login:hover {
  background: #2e9a4e !important;
  box-shadow: 0 2px 6px rgba(54,171,89,0.25) !important;
}

.btn-logout {
  background: rgba(255,255,255,0.15) !important;
  border-color: rgba(255,255,255,0.3) !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-logout:hover {
  background: rgba(255,255,255,0.25) !important;
}

/* ===== Cards ===== */
.card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
  border: 1px solid #e8ecf1 !important;
  border-radius: 4px !important;
  transition: all 0.2s ease !important;
}
.card:hover {
  box-shadow: 0 3px 10px rgba(0,0,0,0.1) !important;
}

/* ===== Form elements ===== */
input[type="file"],
input[type="number"],
input[type="text"],
select {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #cbd5e1 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
input[type="file"]:focus,
input[type="number"]:focus,
input[type="text"]:focus,
select:focus {
  border-color: #366CAB !important;
  box-shadow: 0 0 0 3px rgba(54,108,171,0.15) !important;
}

/* ===== Tables ===== */
table th {
  background: #366CAB !important;
  color: #ffffff !important;
  font-size: 0.82em !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
}
table th:first-child {
  border-top-left-radius: 4px !important;
}
table th:last-child {
  border-top-right-radius: 4px !important;
}
table tbody tr:hover td {
  background: #e8f0fe !important;
}
table td {
  border-bottom-color: #e0e0e0 !important;
  color: #333 !important;
}

.stripe-even tbody tr:nth-child(even) td {
  background: #f8fafc !important;
}

/* ===== Card value ===== */
.card-value {
  color: #2c5f9e !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

/* ===== Gain / Loss ===== */
.gain { color: #1a6e2e !important; }
.loss { color: #c0392b !important; }
.sb-value.gain, .sb-val.gain, td.gain { color: #1a6e2e !important; }
.sb-value.loss, .sb-val.loss, td.loss { color: #c0392b !important; }

/* ===== Loading ===== */
.loading-text {
  color: #366CAB !important;
}

/* ===== Hero section ===== */
.hero {
  background: #2c5f9e !important;
}

/* ===== Features ===== */
.features h3 {
  color: #2c5f9e !important;
}
.feature-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.feature-card:hover {
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important;
}
.feature-card h4 {
  color: #2c5f9e !important;
}
.feature-card p {
  color: #64748b !important;
}

/* ===== Guide section ===== */
.guide-section {
  background: #ffffff !important;
}
.guide-section h3 {
  color: #2c5f9e !important;
}
.guide-card {
  border-color: #e0e0e0 !important;
  color: #333 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.guide-card:hover {
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important;
}
.guide-card h4 {
  color: #2c5f9e !important;
}
.guide-card p {
  color: #64748b !important;
}

/* ===== CTA ===== */
.cta {
  background: #f8fafc !important;
}
.cta h3 {
  color: #2c5f9e !important;
}
.cta p {
  color: #64748b !important;
}

/* ===== Drop zone ===== */
.drop-zone {
  border-color: #cbd5e1 !important;
  border-radius: 8px !important;
}
.drop-zone:hover,
.drop-zone.dragover {
  border-color: #366CAB !important;
  background: rgba(54,108,171,0.04) !important;
}
.drop-zone-text {
  color: #64748b !important;
}

/* ===== Status badge ===== */
.status-badge-success {
  background: rgba(60,118,61,0.1) !important;
  color: #3C763D !important;
  border-radius: 20px !important;
}

/* ===== Login page ===== */
.login-wrap {
  background: #f5f7fa !important;
}
.login-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 8px !important;
}
.login-card h2 {
  color: #2c5f9e !important;
}
.login-card p {
  color: #64748b !important;
}
.login-card .sub {
  color: #64748b !important;
}
.login-card input[type="text"] {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #cbd5e1 !important;
  border-radius: 6px !important;
}
.login-card input[type="text"]:focus {
  border-color: #366CAB !important;
  box-shadow: 0 0 0 3px rgba(54,108,171,0.15) !important;
}
.btn-google {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-google:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
  border-color: #366CAB !important;
}
.login-divider {
  border-top-color: #e0e0e0 !important;
}
.login-note {
  color: #64748b !important;
}
.login-note a {
  color: #366CAB !important;
}
.error-msg {
  background: rgba(169,68,66,0.06) !important;
  border-color: rgba(169,68,66,0.2) !important;
  color: #A94442 !important;
  border-radius: 6px !important;
}
.loading {
  color: #64748b !important;
}

/* ===== Maintenance page ===== */
.maint-wrap {
  background: #f5f7fa !important;
}
.maint-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 8px !important;
}
.maint-card h2 {
  color: #2c5f9e !important;
}
.maint-card p {
  color: #64748b !important;
}

/* ============================================================
   Dashboard page (inline styles override)
   ============================================================ */

/* Summary panel */
.summary-panel {
  color: #333 !important;
}
.summary-block {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
  border: 1px solid #e8ecf1 !important;
  border-radius: 4px !important;
  color: #333 !important;
  transition: all 0.2s ease !important;
  border-top: 3px solid #366CAB !important;
}
.summary-block:hover {
  box-shadow: 0 3px 10px rgba(0,0,0,0.1) !important;
}
.summary-block:nth-child(2) {
  border-top-color: #27AE60 !important;
}
.summary-right {
  color: #333 !important;
}
.summary-right .summary-block:nth-child(1) {
  border-top-color: #E67E22 !important;
}
.summary-right .summary-block:nth-child(2) {
  border-top-color: #8E44AD !important;
}
.sb-label {
  color: #64748b !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}
.sb-value {
  color: #1e293b !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}
.sb-divider {
  border-top-color: #e0e0e0 !important;
}
.sb-detail-header {
  color: #64748b !important;
}
.sb-key {
  color: #64748b !important;
}
.sb-val {
  color: #333 !important;
}

/* Chart cards */
.chart-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
  border: 1px solid #e8ecf1 !important;
  border-radius: 4px !important;
  color: #333 !important;
}
.chart-header-row {
  border-bottom-color: #e0e0e0 !important;
}
.chart-title {
  color: #333 !important;
}

/* Toggle buttons */
.tog-btn {
  background: #ffffff !important;
  color: #64748b !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.tog-btn.active {
  background: #366CAB !important;
  color: #ffffff !important;
  border-color: #366CAB !important;
  box-shadow: 0 1px 3px rgba(54,108,171,0.25) !important;
}

/* Top20 table */
.top20-table th {
  background: #366CAB !important;
  color: #ffffff !important;
}
.top20-table td {
  border-bottom-color: #e0e0e0 !important;
  color: #333 !important;
}
.top20-table tr:hover td {
  background: #e8f0fe !important;
}
.top20-select {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #cbd5e1 !important;
  border-radius: 6px !important;
}

/* Treemap */
.treemap-group {
  border-color: rgba(0,0,0,0.05) !important;
}

/* ============================================================
   Portfolio page (inline styles override)
   ============================================================ */

/* Tab card */
.tab-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
  color: #333 !important;
}
.table-title {
  color: #333 !important;
}
.no-data {
  color: #64748b !important;
}

/* Portfolio table */
.pf-table th {
  background: #366CAB !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.1) !important;
}
.pf-table td {
  border-color: #e0e0e0 !important;
  color: #333 !important;
}
/* ゼブラ廃止 */
#pfBody tr:hover {
  outline-color: #366CAB !important;
}

/* Column group header colors */
.pf-table .th-base  { background: #366CAB !important; }
.pf-table .th-acq   { background: #8A6D3B !important; }
.pf-table .th-eval  { background: #3C763D !important; }
.pf-table .th-pl    { background: #6a5acd !important; }
.pf-table .th-div   { background: #A94442 !important; }
.pf-table .th-yield { background: #31708F !important; }
.pf-table .th-recent { background: #3C763D !important; }

/* Column group data cell colors (subtle tints) */
.pf-table .td-base   { background: rgba(51,122,183,0.04) !important; }
.pf-table .td-acq    { background: rgba(138,109,59,0.06) !important; }
.pf-table .td-eval   { background: rgba(60,118,61,0.04) !important; }
.pf-table .td-pl     { background: rgba(106,90,205,0.04) !important; }
.pf-table .td-div    { background: rgba(169,68,66,0.04) !important; }
.pf-table .td-recent { background: rgba(60,118,61,0.04) !important; }

/* Hover states for column groups */
.pf-table tbody tr:hover td.td-base  { background: rgba(51,122,183,0.08) !important; }
.pf-table tbody tr:hover td.td-acq   { background: rgba(138,109,59,0.1) !important; }
.pf-table tbody tr:hover td.td-eval  { background: rgba(60,118,61,0.08) !important; }
.pf-table tbody tr:hover td.td-pl    { background: rgba(106,90,205,0.08) !important; }
.pf-table tbody tr:hover td.td-div   { background: rgba(169,68,66,0.08) !important; }
.pf-table tbody tr:hover td.td-recent { background: rgba(60,118,61,0.08) !important; }

/* Industry cell colors */
.gyoshu-defensive { background: rgba(60,118,61,0.08) !important; }
.gyoshu-cyclical  { background: rgba(169,68,66,0.06) !important; }
.pf-table tbody tr:hover td.gyoshu-defensive { background: rgba(60,118,61,0.14) !important; }
.pf-table tbody tr:hover td.gyoshu-cyclical  { background: rgba(169,68,66,0.12) !important; }

/* Warning/highlight cells */
.cell-warn {
  background: rgba(169,68,66,0.08) !important;
}
.cell-yield-high {
  background: rgba(66,133,244,0.12) !important;
}
.pf-table tbody tr:hover td.cell-yield-high { background: rgba(66,133,244,0.2) !important; }
.pf-table tbody tr:hover td.cell-warn { background: rgba(169,68,66,0.14) !important; }

/* Stock code link */
.stock-code-btn {
  color: #366CAB !important;
  text-decoration-color: rgba(54,108,171,0.3) !important;
}
.stock-code-btn:hover {
  color: #2c5f9e !important;
  text-decoration-color: #2c5f9e !important;
}
.stock-code {
  color: #64748b !important;
}
.stock-label {
  color: #333 !important;
}

/* Sub-text colors */
.acq-unit, .div-unit, .nisa-note, .yield-sub, .recent-date-sub {
  color: #64748b !important;
}
.prev-change.gain { color: #1a6e2e !important; }
.prev-change.loss { color: #c0392b !important; }
.pl-prev.gain { color: #1a6e2e !important; }
.pl-prev.loss { color: #c0392b !important; }
.recent-pl-short.gain { color: #1a6e2e !important; }
.recent-pl-short.loss { color: #c0392b !important; }

/* Cache status */
.cache-status {
  color: #64748b !important;
}
.cache-status .cache-time {
  color: #94a3b8 !important;
}
.btn-refresh {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-refresh:hover {
  background: #366CAB !important;
  color: #ffffff !important;
  border-color: #366CAB !important;
  box-shadow: 0 1px 3px rgba(54,108,171,0.25) !important;
}

/* Chart modal */
.chart-modal-mask {
  background: rgba(15,23,42,0.5) !important;
}
.chart-modal {
  background: #ffffff !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.15) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 8px !important;
}
.chart-modal-head {
  background: #f8fafc !important;
  border-bottom-color: #e0e0e0 !important;
  color: #333 !important;
}
.chart-modal-body {
  background: #ffffff !important;
}
.chart-period-btn {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.chart-period-btn:hover {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
}
.chart-period-btn.active {
  background: #366CAB !important;
  color: #ffffff !important;
  border-color: #366CAB !important;
}
.chart-meta {
  color: #64748b !important;
}
.chart-meta span b {
  color: #2c5f9e !important;
}
.chart-loading {
  color: #64748b !important;
}
.chart-error {
  color: #A94442 !important;
}

/* ============================================================
   Yakujou page
   ============================================================ */
.period-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
}
.period-label {
  color: #64748b !important;
}
.period-key {
  color: #94a3b8 !important;
}
.period-val {
  color: #2c5f9e !important;
}
.filter-input {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #cbd5e1 !important;
  border-radius: 6px !important;
}
.filter-select {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #cbd5e1 !important;
  border-radius: 6px !important;
}
.badge {
  opacity: 1;
  border-radius: 20px !important;
}
.badge-tokutei {
  background: rgba(106,90,205,0.1) !important;
  color: #6a5acd !important;
}
.badge-nisa-growth {
  background: rgba(60,118,61,0.1) !important;
  color: #3C763D !important;
}
.alert-price {
  color: #A94442 !important;
}

/* ============================================================
   Import page
   ============================================================ */
.summary-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
}
.card-label {
  color: #64748b !important;
}

.import-tab {
  background: #f8fafc !important;
  color: #64748b !important;
  border-radius: 6px 6px 0 0 !important;
  transition: all 0.2s ease !important;
}
.import-tab.active {
  background: #ffffff !important;
  color: #333 !important;
  box-shadow: none !important;
}
.import-tab:not(.active):hover {
  background: #e8f0fe !important;
}

.upload-drop-zone {
  border-color: #cbd5e1 !important;
  background: transparent !important;
  border-radius: 8px !important;
}
.upload-drop-zone:hover,
.upload-drop-zone.dragover {
  border-color: #366CAB !important;
  background: rgba(54,108,171,0.04) !important;
}
.upload-drop-zone .dz-text {
  color: #64748b !important;
}

.upload-label {
  background: #366CAB !important;
  border-radius: 6px !important;
}
.upload-label:hover {
  background: #2c5f9e !important;
}

.import-status {
  background: rgba(60,118,61,0.08) !important;
  color: #3C763D !important;
  border-radius: 6px !important;
}
.import-error {
  color: #A94442 !important;
}

.btn-action {
  background: #366CAB !important;
  border-radius: 6px !important;
}

.section-title {
  color: #333 !important;
  border-bottom-color: #e0e0e0 !important;
}

.portfolio-table th {
  background: #366CAB !important;
  color: #ffffff !important;
}
.portfolio-table td {
  border-bottom-color: #e0e0e0 !important;
  color: #333 !important;
}
.portfolio-table tr:hover {
  background: #e8f0fe !important;
}

.filter-btn {
  background: #ffffff !important;
  color: #64748b !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.filter-btn.active {
  background: #366CAB !important;
  color: #ffffff !important;
  border-color: #366CAB !important;
}

.broker-tabs {
  border-bottom-color: #e0e0e0 !important;
}
.broker-tab-btn {
  color: #64748b !important;
  transition: all 0.2s ease !important;
}
.broker-tab-btn.active {
  color: #333 !important;
  border-bottom: 3px solid #f59e0b !important;
}

.radio-label {
  color: #333 !important;
}
.radio-hint {
  color: #94a3b8 !important;
}

.next-steps {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
}
.next-steps-title {
  color: #2c5f9e !important;
}
.btn-next-primary {
  background: #366CAB !important;
  color: white !important;
  border-radius: 6px !important;
}
.btn-next-secondary {
  background: rgba(54,108,171,0.08) !important;
  color: #366CAB !important;
  border-radius: 6px !important;
}
.btn-next-warn {
  background: rgba(138,109,59,0.1) !important;
  color: #8A6D3B !important;
  border-radius: 6px !important;
}

.badge-nisa-accum {
  background: rgba(138,109,59,0.1) !important;
  color: #8A6D3B !important;
}
.badge-neutral {
  background: #f1f5f9 !important;
  color: #64748b !important;
}
.badge-rakuten {
  background: rgba(169,68,66,0.08) !important;
  color: #A94442 !important;
}

/* ============================================================
   Records (dividends) page
   ============================================================ */
.records-table th {
  background: #366CAB !important;
  color: #ffffff !important;
}
.records-table td {
  border-bottom-color: #e0e0e0 !important;
  color: #333 !important;
}
.records-table tr:hover {
  background: #e8f0fe !important;
}

.yearly-card {
  background: #ffffff !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.yearly-card:hover {
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important;
}
.yearly-year {
  color: #64748b !important;
}
.yearly-amt {
  color: #2c5f9e !important;
}
.yearly-nisa {
  color: #3C763D !important;
}
.yearly-tok {
  color: #64748b !important;
}

.detail-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
}
.detail-title {
  color: #333 !important;
}

.badge-nisa {
  background: #3C763D !important;
  border-radius: 20px !important;
}
.badge-tokutei {
  background: #f1f5f9 !important;
  border: 1px solid #e0e0e0 !important;
  color: #64748b !important;
  border-radius: 20px !important;
}

.btn-danger {
  background: transparent !important;
  color: #A94442 !important;
  border-color: #e0a0a0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-danger:hover {
  background: rgba(169,68,66,0.06) !important;
}

.tab-btn {
  color: #64748b !important;
  transition: all 0.2s ease !important;
}
.tab-btn.active {
  color: #333 !important;
  border-bottom: 3px solid #f59e0b !important;
}

/* ============================================================
   Settings page
   ============================================================ */
.settings-card {
  background: #ffffff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 6px !important;
}
.settings-title {
  color: #333 !important;
}

.industry-table th {
  background: #366CAB !important;
  color: #ffffff !important;
}
.industry-table td {
  border-bottom-color: #e0e0e0 !important;
  color: #333 !important;
}
.industry-table tr:hover {
  background: #e8f0fe !important;
}
.industry-table tbody tr:nth-child(even) td {
  background: #f8fafc !important;
}
.industry-table tbody tr:nth-child(even):hover td {
  background: #e8f0fe !important;
}

.toggle-btn {
  background: #ffffff !important;
  color: #64748b !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.toggle-btn.defensive.active {
  background: #3C763D !important;
  color: white !important;
  border-color: #3C763D !important;
}
.toggle-btn.cyclical.active {
  background: #A94442 !important;
  color: white !important;
  border-color: #A94442 !important;
}

.btn-save {
  background: #36AB59 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-save:hover {
  background: #2e9a4e !important;
  box-shadow: 0 2px 6px rgba(54,171,89,0.25) !important;
}
.btn-reset {
  background: #ffffff !important;
  color: #333 !important;
  border-color: #e0e0e0 !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}
.btn-reset:hover {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
}

#saveMsg {
  color: #3C763D !important;
}

/* ============================================================
   Miscellaneous inline style overrides
   ============================================================ */

/* Links in "no data" areas */
a[style*="color:#1a3a5c"] {
  color: #366CAB !important;
}

/* Bottom link to bunseki */
a[style*="color:#888"] {
  color: #94a3b8 !important;
}

/* Inline background overrides for divs with style attributes */
div[style*="background:#f8f9fa"],
div[style*="background: #f8f9fa"] {
  background: #ffffff !important;
  color: #333 !important;
}

/* Override original navy backgrounds/colors from inline styles */
div[style*="background:#f0f4f8"],
div[style*="background: #f0f4f8"] {
  background: #f5f7fa !important;
}

/* Scrollbar styling */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* ============================================================
   Landing Page (.lp body class)
   ============================================================ */

body.lp {
  background: #ffffff !important;
}

/* LP Header */
.lp-header {
  background: #ffffff !important;
  box-shadow: 0 1px 0 #e8ecf1 !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
  height: auto !important;
  padding: 0 !important;
}
.lp-header-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 32px;
  height: 64px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.lp-logo {
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  letter-spacing: -0.02em !important;
}
.lp-nav {
  display: flex;
  align-items: center;
  gap: 28px;
}
.lp-nav a {
  font-size: 0.85rem;
  color: #64748b;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.15s;
}
.lp-nav a:hover {
  color: #1e293b;
}
.lp-nav .btn-login {
  background: #366CAB !important;
  color: #ffffff !important;
  padding: 8px 20px !important;
  border-radius: 6px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
}
.lp-nav .btn-login:hover {
  background: #2c5f9e !important;
}

/* LP Hero */
.lp-hero {
  background: linear-gradient(135deg, #1e3a5f 0%, #366CAB 50%, #4a8fd4 100%) !important;
  padding: 0 !important;
}
.lp-hero-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 80px 32px 88px;
  text-align: center;
}
.lp-hero-badge {
  display: inline-block;
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.95);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 6px 16px;
  border-radius: 20px;
  margin-bottom: 24px;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}
.lp-hero-title {
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 2.6rem !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  line-height: 1.35 !important;
  margin-bottom: 20px !important;
  letter-spacing: -0.02em !important;
}
.lp-hero-desc {
  font-size: 1.05rem !important;
  color: rgba(255,255,255,0.85) !important;
  line-height: 1.7 !important;
  margin-bottom: 36px !important;
  opacity: 1 !important;
}
.lp-hero-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.lp-btn-primary {
  display: inline-block;
  background: #ffffff;
  color: #366CAB;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 14px 36px;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.lp-btn-primary:hover {
  background: #f0f4ff;
  box-shadow: 0 4px 16px rgba(0,0,0,0.18);
  transform: translateY(-1px);
}
.lp-btn-ghost {
  display: inline-block;
  background: transparent;
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 600;
  padding: 14px 36px;
  border-radius: 6px;
  text-decoration: none;
  border: 1.5px solid rgba(255,255,255,0.4);
  transition: all 0.2s ease;
}
.lp-btn-ghost:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.7);
}

/* LP Stats */
.lp-stats {
  background: #f8fafc;
  border-bottom: 1px solid #e8ecf1;
}
.lp-stats-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 32px;
  display: flex;
  justify-content: center;
  gap: 64px;
}
.lp-stat {
  text-align: center;
}
.lp-stat-num {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 2rem;
  font-weight: 700;
  color: #366CAB;
  letter-spacing: -0.03em;
  line-height: 1.2;
}
.lp-stat-label {
  display: block;
  font-size: 0.8rem;
  color: #64748b;
  margin-top: 4px;
  font-weight: 500;
}

/* LP Section common */
.lp-section-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 80px 32px;
}
.lp-section-title {
  text-align: center;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 12px;
  letter-spacing: -0.02em;
}
.lp-section-sub {
  text-align: center;
  font-size: 0.92rem;
  color: #64748b;
  margin-bottom: 48px;
}

/* LP Features */
.lp-features {
  background: #ffffff;
}
.lp-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.lp-feature-card {
  background: #ffffff;
  border: 1px solid #e8ecf1;
  border-radius: 8px;
  padding: 28px 24px;
  transition: all 0.2s ease;
}
.lp-feature-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.lp-feature-icon {
  width: 48px;
  height: 48px;
  background: #f0f4ff;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.lp-feature-card h4 {
  font-size: 0.95rem;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 8px;
}
.lp-feature-card p {
  font-size: 0.82rem;
  color: #64748b;
  line-height: 1.65;
}

/* LP Tools */
.lp-tools {
  background: #f8fafc;
}
.lp-tools-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.lp-tools-3col {
  grid-template-columns: repeat(3, 1fr);
}
.lp-tool-card {
  background: #ffffff;
  border: 1px solid #e8ecf1;
  border-radius: 8px;
  padding: 32px 28px;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease;
  display: block;
}
.lp-tool-card:hover {
  border-color: #366CAB;
  box-shadow: 0 4px 20px rgba(54,108,171,0.1);
}
.lp-tool-badge {
  display: inline-block;
  background: #366CAB;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 4px;
  margin-bottom: 12px;
  letter-spacing: 0.02em;
}
.lp-tool-badge-alt {
  background: #27AE60;
}
.lp-tool-badge-info {
  background: #8e44ad;
}
.lp-tool-card h4 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 8px;
}
.lp-tool-card p {
  font-size: 0.85rem;
  color: #64748b;
  line-height: 1.6;
  margin-bottom: 16px;
}
.lp-tool-link {
  font-size: 0.85rem;
  font-weight: 600;
  color: #366CAB;
}

/* LP How-to */
.lp-howto {
  background: #ffffff;
}
.lp-steps {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 16px;
}
.lp-step {
  flex: 1;
  max-width: 280px;
  text-align: center;
}
.lp-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #366CAB;
  color: #ffffff;
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 50%;
  margin-bottom: 16px;
}
.lp-step h4 {
  font-size: 0.92rem;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 8px;
}
.lp-step p {
  font-size: 0.82rem;
  color: #64748b;
  line-height: 1.6;
}
.lp-step-arrow {
  color: #cbd5e1;
  font-size: 1.4rem;
  margin-top: 12px;
  font-weight: 300;
}

/* LP CTA */
.lp-cta {
  background: #f8fafc !important;
  border-top: 1px solid #e8ecf1;
}
.lp-cta .lp-section-inner {
  text-align: center;
  padding: 64px 32px;
}
.lp-cta h3 {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 12px;
}
.lp-cta p {
  font-size: 0.92rem;
  color: #64748b;
  margin-bottom: 28px;
}
.lp-cta .lp-btn-primary {
  background: #366CAB;
  color: #ffffff;
}
.lp-cta .lp-btn-primary:hover {
  background: #2c5f9e;
  box-shadow: 0 4px 16px rgba(54,108,171,0.25);
}

/* LP Footer */
.lp-footer {
  background: #1e293b !important;
  color: rgba(255,255,255,0.6) !important;
}
.lp-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px;
  text-align: center;
}
.lp-footer-links {
  margin-bottom: 12px;
}
.lp-footer-links a {
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  font-size: 0.82rem;
  margin: 0 12px;
  transition: color 0.15s;
}
.lp-footer-links a:hover {
  color: #ffffff;
}
.lp-footer-articles {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.lp-footer-articles-title {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.3);
  margin-bottom: 8px;
  text-align: center;
}
.lp-footer-article-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px 16px;
}
.lp-footer-article-list li a {
  color: rgba(255,255,255,0.35);
  text-decoration: none;
  font-size: 0.65rem;
  line-height: 1.9;
}
.lp-footer-article-list li a:hover {
  color: rgba(255,255,255,0.7);
}
.lp-footer-copy {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.4);
}

/* LP Content Sections (About / Operator / Dividend info) */
.lp-content-section {
  border-top: 1px solid #e8ecf1;
}
.lp-content-bg-white {
  background: #ffffff;
}
.lp-content-bg-gray {
  background: #f8fafc;
}
.lp-content-body {
  max-width: 780px;
  margin: 0 auto;
}
.lp-content-h3 {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #1e293b;
  margin-top: 32px;
  margin-bottom: 12px;
  padding-left: 14px;
  border-left: 3px solid #366CAB;
  line-height: 1.4;
}
.lp-content-body > h3:first-child,
.lp-content-body > .lp-content-h3:first-child {
  margin-top: 0;
}
.lp-content-body p {
  font-size: 0.9rem;
  color: #475569;
  line-height: 1.85;
  margin-bottom: 16px;
}
.lp-content-body p strong {
  color: #1e293b;
  font-weight: 600;
}
.lp-content-link {
  margin-top: 24px;
  margin-bottom: 0 !important;
}
.lp-content-link a {
  display: inline-block;
  color: #366CAB;
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  padding: 10px 0;
  border-bottom: 1.5px solid #366CAB;
  transition: all 0.2s ease;
}
.lp-content-link a:hover {
  color: #2c5f9e;
  border-bottom-color: #2c5f9e;
}

/* LP Responsive */
@media (max-width: 768px) {
  .lp-header-inner {
    padding: 0 16px;
    height: 56px;
  }
  .lp-nav {
    gap: 16px;
  }
  .lp-nav a:not(.btn-login) {
    display: none;
  }
  .lp-hero-inner {
    padding: 56px 20px 64px;
  }
  .lp-hero-title {
    font-size: 1.8rem !important;
  }
  .lp-hero-desc {
    font-size: 0.92rem !important;
  }
  .lp-hero-actions {
    flex-direction: column;
    align-items: center;
  }
  .lp-stats-inner {
    gap: 32px;
    padding: 32px 16px;
  }
  .lp-stat-num {
    font-size: 1.5rem;
  }
  .lp-section-inner {
    padding: 56px 20px;
  }
  .lp-feature-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .lp-tools-grid {
    grid-template-columns: 1fr;
  }
  .lp-steps {
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }
  .lp-step-arrow {
    transform: rotate(90deg);
    margin: 0;
  }
  .lp-footer-inner {
    padding: 24px 16px;
  }
  .lp-footer-article-list {
    grid-template-columns: repeat(2, 1fr);
  }
  .lp-content-body {
    max-width: 100%;
  }
  .lp-content-h3 {
    font-size: 1rem;
    margin-top: 28px;
  }
  .lp-content-body p {
    font-size: 0.88rem;
  }
}

/* ===== Ad Container ===== */
.ad-container {
  text-align: center;
  margin: 24px auto;
  max-width: 728px;
  overflow: hidden;
  min-height: 0;
}
.ad-container ins.adsbygoogle[data-ad-status="unfilled"] {
  display: none !important;
}
.ad-container:has(ins.adsbygoogle[data-ad-status="unfilled"]) {
  margin: 0 auto !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}
@media (max-width: 768px) {
  .ad-container {
    max-width: 100%;
    margin: 16px auto;
  }
}
