:root {
  --taxai-bg:#f6f8fb;
  --taxai-surface:#ffffff;
  --taxai-border:#d9e2ec;
  --taxai-text:#142033;
  --taxai-muted:#53657d;
  --taxai-heading:#0f1b2d;
  --taxai-primary:#1d4ed8;
  --taxai-sidebar-bg:#101827;
  --taxai-sidebar-text:#e8edf7;
  --taxai-sidebar-active:#2563eb;
  --taxai-radius:14px;
  --taxai-shadow:0 10px 30px rgba(15,23,42,.08);
}

html,body {
  background:var(--taxai-bg)!important;
  color:var(--taxai-text)!important;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif!important;
  line-height:1.65;
}

main,.taxai-main,.taxai-content,.taxai-page,.taxai-ds-page,.admin-main,.admin-content {
  color:var(--taxai-text)!important;
  min-width:0;
}

h1,h2,h3,h4,h5,h6,.page-title,.taxai-title,.taxai-heading,.card-title {
  color:var(--taxai-heading)!important;
  font-weight:800;
}

.text-muted,.taxai-muted,.taxai-text-muted,small {
  color:var(--taxai-muted)!important;
}

.card,.taxai-card,.taxai-panel,.taxai-box,.taxai-section,.taxai-ds-card,.dashboard-card,.table-card {
  background:var(--taxai-surface)!important;
  color:var(--taxai-text)!important;
  border:1px solid var(--taxai-border)!important;
  border-radius:var(--taxai-radius)!important;
  box-shadow:var(--taxai-shadow)!important;
}

.card-header,.taxai-card-header,.taxai-panel-header {
  background:linear-gradient(180deg,#fff,#f8fafc)!important;
  color:var(--taxai-heading)!important;
  border-bottom:1px solid var(--taxai-border)!important;
}

table,.table {
  color:var(--taxai-text)!important;
  background:var(--taxai-surface)!important;
}

table th,.table th {
  color:var(--taxai-heading)!important;
  background:#f1f5f9!important;
  border-color:var(--taxai-border)!important;
}

table td,.table td {
  color:var(--taxai-text)!important;
  border-color:var(--taxai-border)!important;
}

input,select,textarea,.form-control,.form-select {
  background:#fff!important;
  color:var(--taxai-text)!important;
  border:1px solid #cbd5e1!important;
  border-radius:10px!important;
}

.btn,button,.taxai-btn {
  border-radius:10px!important;
  font-weight:700;
}

.btn-primary,.taxai-btn-primary {
  background:var(--taxai-primary)!important;
  border-color:var(--taxai-primary)!important;
  color:#fff!important;
}

.sidebar,.admin-sidebar,.taxai-sidebar,.taxai-os-sidebar,.taxai-common-sidebar,aside[class*="sidebar"] {
  background:var(--taxai-sidebar-bg)!important;
  color:var(--taxai-sidebar-text)!important;
  border-right:1px solid rgba(255,255,255,.08)!important;
}

.sidebar *,.admin-sidebar *,.taxai-sidebar *,.taxai-os-sidebar *,.taxai-common-sidebar *,aside[class*="sidebar"] * {
  color:var(--taxai-sidebar-text)!important;
}

.sidebar a,.admin-sidebar a,.taxai-sidebar a,.taxai-os-sidebar a,.taxai-common-sidebar a,aside[class*="sidebar"] a {
  color:var(--taxai-sidebar-text)!important;
  text-decoration:none!important;
}

.sidebar a:hover,.admin-sidebar a:hover,.taxai-sidebar a:hover,.taxai-os-sidebar a:hover,.taxai-common-sidebar a:hover,aside[class*="sidebar"] a:hover {
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
}

.sidebar .active,.admin-sidebar .active,.taxai-sidebar .active,.taxai-os-sidebar .active,.taxai-common-sidebar .active,aside[class*="sidebar"] .active {
  background:var(--taxai-sidebar-active)!important;
  color:#fff!important;
}

body:has(.taxai-common-sidebar) .taxai-os-sidebar:not(.taxai-common-sidebar),
body:has(.taxai-common-sidebar) .admin-sidebar:not(.taxai-common-sidebar),
body:has(.taxai-common-sidebar) .portal-sidebar,
body:has(.taxai-common-sidebar) .client-sidebar {
  display:none!important;
}

.taxai-hero,.hero,.page-hero {
  background:#fff!important;
  color:var(--taxai-text)!important;
  border:1px solid var(--taxai-border)!important;
  border-radius:var(--taxai-radius)!important;
}

.taxai-hero h1,.taxai-hero h2,.taxai-hero p,
.hero h1,.hero h2,.hero p,
.page-hero h1,.page-hero h2,.page-hero p {
  color:var(--taxai-heading)!important;
}

img,svg,canvas,table {
  max-width:100%;
}

@media (max-width:900px) {
  .taxai-layout,.admin-layout,.app-layout {
    display:block!important;
  }

  .sidebar,.admin-sidebar,.taxai-sidebar,.taxai-common-sidebar,aside[class*="sidebar"] {
    position:relative!important;
    width:100%!important;
    min-height:auto!important;
  }
}

/* =========================================================
   TaxAI Ver.90: fixed sidebar overlap hard fix
   - 左メニュー固定時に本文が潜り込む問題を解消
   ========================================================= */

:root{
  --taxai-sidebar-width: 320px;
}

/* Sidebar */
.taxai-sidebar,
.taxai-os-sidebar,
.taxai-common-sidebar,
aside[class*="sidebar"]{
  width: var(--taxai-sidebar-width) !important;
  max-width: var(--taxai-sidebar-width) !important;
  flex: 0 0 var(--taxai-sidebar-width) !important;
}

/* Main layout offset */
.taxai-main,
.taxai-content,
.taxai-page,
.taxai-app-main,
.taxai-os-main,
.taxai-layout-main,
main{
  margin-left: var(--taxai-sidebar-width) !important;
  width: calc(100% - var(--taxai-sidebar-width)) !important;
  max-width: calc(100% - var(--taxai-sidebar-width)) !important;
  box-sizing: border-box !important;
}

/* Header / cards should not start under sidebar */
.taxai-header,
.taxai-topbar,
.taxai-page-header,
.taxai-hero,
.taxai-card,
.taxai-panel{
  box-sizing: border-box !important;
}

/* Prevent huge empty header blocks */
.taxai-hero,
.taxai-page-header{
  min-height: auto !important;
}

/* Tables stay inside content area */
.table-responsive,
.taxai-table-wrap,
.taxai-card,
.taxai-panel{
  overflow-x: auto !important;
}

/* Mobile: sidebar should not reserve desktop width */
@media (max-width: 960px){
  .taxai-main,
  .taxai-content,
  .taxai-page,
  .taxai-app-main,
  .taxai-os-main,
  .taxai-layout-main,
  main{
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* =========================================================
   TaxAI Ver.92: final layout reset
   body padding方式を無効化し、mainだけをサイドバー分ずらす
   ========================================================= */

@media (min-width: 961px){

  body{
    padding-left: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
  }

  .taxai-sidebar,
  .taxai-os-sidebar,
  .taxai-common-sidebar,
  aside[class*="sidebar"]{
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: 292px !important;
    max-width: 292px !important;
    min-width: 292px !important;
    height: 100vh !important;
    z-index: 9999 !important;
  }

  main,
  .taxai-main,
  .taxai-os-main,
  .taxai-app-main,
  .taxai-layout-main,
  .taxai-content,
  .taxai-page,
  .taxai-shell-main,
  .app-main,
  .content-wrapper{
    margin-left: 292px !important;
    width: calc(100vw - 292px) !important;
    max-width: calc(100vw - 292px) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  main > *,
  .taxai-main > *,
  .taxai-content > *,
  .taxai-page > *,
  .container,
  .container-fluid,
  .taxai-container,
  .taxai-page-inner,
  .taxai-wrapper,
  .taxai-card,
  .taxai-panel,
  .taxai-hero,
  .taxai-page-header{
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  .taxai-card,
  .taxai-panel,
  .taxai-hero,
  .taxai-page-header{
    overflow: visible !important;
  }

  table{
    width: 100% !important;
    table-layout: auto !important;
  }

  .table-responsive,
  .taxai-table-wrap{
    width: 100% !important;
    overflow-x: auto !important;
  }
}

@media (max-width: 960px){
  body{
    padding-left: 0 !important;
  }

  main,
  .taxai-main,
  .taxai-os-main,
  .taxai-app-main,
  .taxai-layout-main,
  .taxai-content,
  .taxai-page{
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
