/* supplement.css - 补充预编译 CSS 中缺失的 Tailwind 类 */

/* === 圆角 === */
.rounded-xl{border-radius:0.75rem}
.rounded-2xl{border-radius:1rem}

/* === white-space === */
.whitespace-nowrap{white-space:nowrap}

/* === 间距 === */
.gap-2{gap:0.5rem}
.gap-2\.5{gap:0.625rem}
.gap-3{gap:0.75rem}
.gap-3\.5{gap:0.875rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.gap-y-6{row-gap:1.5rem}
.gap-y-2{row-gap:0.5rem}

/* === padding === */
.p-6{padding:1.5rem}
.p-7{padding:1.75rem}
.p-8{padding:2rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.px-7{padding-left:1.75rem;padding-right:1.75rem}
.px-8{padding-left:2rem;padding-right:2rem}
.px-9{padding-left:2.25rem;padding-right:2.25rem}
.px-10{padding-left:2.5rem;padding-right:2.5rem}
.px-3\.5{padding-left:0.875rem;padding-right:0.875rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.py-7{padding-top:1.75rem;padding-bottom:1.75rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.pb-6{padding-bottom:1.5rem}
.pb-8{padding-bottom:2rem}
.pt-6{padding-top:1.5rem}
.mb-3{margin-bottom:0.75rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mt-1{margin-top:0.25rem}
.mt-1\.5{margin-top:0.375rem}
.mt-2{margin-top:0.5rem}
.mt-3{margin-top:0.75rem}
.mt-5{margin-top:1.25rem}
.mt-6{margin-top:1.5rem}

/* === flex === */
.flex-shrink-0{flex-shrink:0}
.flex-wrap{flex-wrap:wrap}
.items-baseline{align-items:baseline}
.items-start{align-items:flex-start}

/* === grid === */
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}

/* === 字体 === */
.font-bold{font-weight:700}
.font-semibold{font-weight:600}
.text-xs{font-size:0.75rem;line-height:1rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-\[15px\]{font-size:15px}
.text-\[17px\]{font-size:17px}
.text-\[18px\]{font-size:18px}
.text-\[34px\]{font-size:34px}
.text-\[16px\]{font-size:16px}
.text-\[13px\]{font-size:13px}
.text-\[12px\]{font-size:12px}
.text-center{text-align:center}

/* === letter spacing === */
.tracking-tight{letter-spacing:-0.025em}
.tracking-wide{letter-spacing:0.025em}
.tracking-widest{letter-spacing:0.1em}

/* === leading === */
.leading-relaxed{line-height:1.625}
.leading-snug{line-height:1.375}
.leading-tight{line-height:1.25}

/* === 颜色 === */
.bg-white{background-color:#fff}
.bg-stone-50{background-color:#fafaf9}
.bg-stone-100{background-color:#f5f5f4}
.bg-stone-200{background-color:#e7e5e4}
.bg-black{background-color:#000}
.text-white{color:#fff}
.text-black{color:#000}
.text-neutral-100{color:#f5f5f5}
.text-neutral-200{color:#e5e5e5}
.text-neutral-800{color:#262626}
.text-neutral-900{color:#171717}
.text-neutral-500{color:#737373}
.text-stone-400{color:#a8a29e}
.text-stone-500{color:#78716c}
.text-stone-600{color:#57534e}
.border-stone-100{border-color:#f5f5f4}
.border-stone-200{border-color:#e7e5e4}
.border-stone-300{border-color:#d6d3d1}

/* === max-width === */
.max-w-xl{max-width:36rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-none{max-width:none}

/* === overflow === */
.overflow-hidden{overflow:hidden}

/* === transition === */
.transition{transition-property:all;transition-duration:0.15s}
.duration-200{transition-duration:0.2s}

/* === hover === */
.hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}
.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1)}
.hover\:bg-stone-100:hover{background-color:#f5f5f4}
.hover\:text-white:hover{color:#fff}
.hover\:bg-white:hover{background-color:#fff}
.hover\:border-\[\#a2c6e1\]:hover{border-color:#a2c6e1}
.hover\:border-\[\#a2c6e1\]\/40:hover{border-color:rgba(162,198,225,0.4)}
.hover\:text-\[\#668aa5\]:hover{color:#668aa5}
.hover\:bg-\[\#1a3d5c\]:hover{background-color:#1a3d5c}
.hover\:bg-white\/20:hover{background-color:rgba(255,255,255,0.2)}
.hover\:underline:hover{text-decoration:underline}

/* === bg opacity === */
.bg-white\/5{background-color:rgba(255,255,255,0.05)}
.bg-white\/10{background-color:rgba(255,255,255,0.1)}
.bg-white\/15{background-color:rgba(255,255,255,0.15)}
.bg-white\/20{background-color:rgba(255,255,255,0.2)}
.bg-\[\#0f2b46\]{background-color:#0f2b46}
.bg-\[\#0f2b46\]\/5{background-color:rgba(15,43,70,0.05)}
.bg-\[\#1a3d5c\]{background-color:#1a3d5c}
.bg-\[\#2a5a7a\]{background-color:#2a5a7a}
.bg-gray-500\/50{background-color:rgba(107,114,128,0.5)}

/* === text colors === */
.text-\[\#0f2b46\]{color:#0f2b46}
.text-\[\#668aa5\]{color:#668aa5}
.text-white\/90{color:rgba(255,255,255,0.9)}
.text-white\/70{color:rgba(255,255,255,0.7)}

/* === gradient === */
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops,))}

/* === border colors === */
.border-\[\#a2c6e1\]\/40{border-color:rgba(162,198,225,0.4)}
.border-white\/20{border-color:rgba(255,255,255,0.2)}

/* === width/height === */
.w-8{width:2rem}
.h-8{height:2rem}
.w-9{width:2.25rem}
.h-9{height:2.25rem}
.w-\[140px\]{width:140px}
.h-\[92px\]{height:92px}
.h-\[88px\]{height:88px}
.h-\[108px\]{height:108px}
.h-\[90px\]{height:90px}
.w-\[132px\]{width:132px}
.w-\[160px\]{width:160px}
.w-\[320px\]{width:320px}
.w-\[16\]{width:4rem}
.h-10{height:2.5rem}
.h-12{height:3rem}
.w-14{width:3.5rem}
.w-16{width:4rem}
.w-20{width:5rem}
.min-w-\[280px\]{min-width:280px}
.min-w-0{min-width:0}

/* === opacity backdrop === */
.backdrop-blur{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

/* === prose === */
.prose{color:#44403c;line-height:1.7}
.prose p{margin:0.5em 0}

/* === line clamp === */
.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}
.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}

/* === last:border-0 === */
.last\:border-0:last-child{border:0}

/* === inline === */
.inline-block{display:inline-block}
.inline-flex{display:inline-flex}

/* === z-index === */
.z-\[1000\]{z-index:1000}

/* === position === */
.relative{position:relative}
.overflow-hidden{overflow:hidden}

/* === sm: === */
@media (min-width:640px){
  .sm\:block{display:block}
  .sm\:hidden{display:none}
  .sm\:w-\[150px\]{width:150px}
  .sm\:w-\[160px\]{width:160px}
}

/* === md: === */
@media (min-width:768px){
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:flex{display:flex}
  .md\:flex-row{flex-direction:row}
  .md\:items-center{align-items:center}
  .md\:justify-between{justify-content:space-between}
  .md\:p-6{padding:1.5rem}
  .md\:p-7{padding:1.75rem}
  .md\:p-8{padding:2rem}
  .md\:px-8{padding-left:2rem;padding-right:2rem}
  .md\:px-9{padding-left:2.25rem;padding-right:2.25rem}
  .md\:px-10{padding-left:2.5rem;padding-right:2.5rem}
  .md\:py-7{padding-top:1.75rem;padding-bottom:1.75rem}
  .md\:py-8{padding-top:2rem;padding-bottom:2rem}
  .md\:text-3xl{font-size:1.875rem}
  .md\:text-lg{font-size:1.125rem}
  .md\:text-\[34px\]{font-size:34px}
  .md\:w-\[320px\]{width:320px}
  .md\:w-\[280px\]{width:280px}
  .md\:block{display:block}
}

/* === lg: === */
@media (min-width:1024px){
  .lg\:block{display:block}
  .lg\:hidden{display:none}
  .lg\:flex{display:flex}
  .lg\:col-span-8{grid-column:span 8/span 8}
  .lg\:col-span-3{grid-column:span 3/span 3}
  .lg\:w-1\/2{width:50%}
  .lg\:px-9{padding-left:2.25rem;padding-right:2.25rem}
  .lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}
}

/* === dark === */
:is(.dark .dark\:text-gray-300){color:#d1d5db}
:is(.dark .dark\:text-gray-400){color:#9ca3af}
:is(.dark .dark\:text-gray-500){color:#6b7280}
:is(.dark .dark\:text-neutral-100){color:#f5f5f5}
:is(.dark .dark\:text-neutral-200){color:#e5e5e5}
:is(.dark .dark\:bg-neutral-800){background-color:#262626}
:is(.dark .dark\:bg-neutral-800\/30){background-color:rgba(38,38,38,0.3)}
:is(.dark .dark\:bg-neutral-800\/40){background-color:rgba(38,38,38,0.4)}
:is(.dark .dark\:border-neutral-700){border-color:#404040}
:is(.dark .dark\:border-neutral-700\/50){border-color:rgba(64,64,64,0.5)}
:is(.dark .dark\:border-neutral-600){border-color:#525252}
:is(.dark .dark\:prose-invert){color:#d1d5db}

/* === iconify === */
iconify-icon{display:inline-block;line-height:1}

/* === markdown body for new layouts === */
.markdown-body p{margin:0.5em 0}
.markdown-body h2{font-size:1.25em;font-weight:600;margin:1em 0 0.5em}
.markdown-body h3{font-size:1.1em;font-weight:600;margin:0.8em 0 0.4em}
.markdown-body ul{padding-left:1.5em;margin:0.5em 0}
.markdown-body li{list-style:disc;margin:0.2em 0}
.markdown-body a{color:#668aa5}

/* === pillar-content (services / knowledge) === */
.pillar-content{color:#44403c;line-height:1.78;font-size:0.94rem;overflow-wrap:break-word;word-break:break-word}
:is(.dark .pillar-content){color:#d1d5db}
.pillar-content img{max-width:100%;height:auto;display:block;border-radius:0.5rem}
.pillar-content figure{max-width:100%;margin:1rem 0}
.pillar-content h2{font-size:1.05rem;font-weight:700;color:#0f2b46;background:#f8fafb;border-left:4px solid #0f2b46;padding:0.6rem 0.85rem;border-radius:0 0.5rem 0.5rem 0;margin:1.8rem 0 0.9rem;line-height:1.45;overflow-wrap:break-word}
:is(.dark .pillar-content h2){color:#e5e7eb;background:rgba(38,38,38,0.7);border-left-color:#a2c6e1}
.pillar-content h3{font-size:0.98rem;font-weight:600;color:#1c3a5a;margin:1.4rem 0 0.6rem;padding-left:0.6rem;border-left:3px solid #a2c6e1}
:is(.dark .pillar-content h3){color:#dbeafe;border-left-color:#4b6a85}
.pillar-content p{margin:0.7em 0}
.pillar-content ul,.pillar-content ol{margin:0.6em 0 0.8em 1.1em;padding-left:1.1em}
.pillar-content li{margin:0.35em 0}
.pillar-content li::marker{color:#0f2b46}
.pillar-content a{color:#0f2b46;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(15,43,70,0.25)}
.pillar-content a:hover{color:#1e5a8a;text-decoration-color:#1e5a8a}
:is(.dark .pillar-content a){color:#a2c6e1;text-decoration-color:rgba(162,198,225,0.35)}
.pillar-content blockquote{border-left:3px solid #a2c6e1;background:#f8fafb;padding:0.7rem 1rem;border-radius:0 0.5rem 0.5rem 0;margin:1rem 0;color:#57534e;font-size:0.92em}
:is(.dark .pillar-content blockquote){background:rgba(38,38,38,0.5);color:#9ca3af;border-left-color:#4b6a85}
.pillar-content pre{background:#f8fafb;border:1px solid #e7e5e4;border-radius:0.6rem;padding:1rem;overflow:auto;font-size:0.82rem;line-height:1.65;margin:1rem 0;max-width:100%}
:is(.dark .pillar-content pre){background:#1e293b;border-color:#334155;color:#e2e8f0}
.pillar-content code{font-family:ui-monospace,Menlo,Consolas,monospace;background:#f1f5f9;padding:0.15em 0.35em;border-radius:0.3em;font-size:0.88em}
.pillar-content pre code{background:transparent;padding:0}
.pillar-content table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:0.88rem;border:1px solid #e7e5e4;border-radius:0.5rem;overflow:hidden}
.pillar-content th{background:#0f2b46;color:#fff;font-weight:600;text-align:left;padding:0.6rem 0.75rem}
.pillar-content td{padding:0.55rem 0.75rem;border-top:1px solid #e7e5e4}
.pillar-content tr:nth-child(even) td{background:#fafaf9}
:is(.dark .pillar-content th){background:#1e3a4f}
:is(.dark .pillar-content td){border-color:#404040}
:is(.dark .pillar-content tr:nth-child(even) td){background:rgba(38,38,38,0.4)}
.pillar-content hr{border:none;border-top:1px solid #e7e5e4;margin:1.6rem 0}
.toc-desktop nav ul{list-style:none;padding:0;margin:0}
.toc-desktop nav li{margin:0.3rem 0}
.toc-desktop nav a{color:#57534e;font-size:0.84rem;line-height:1.4;display:block;padding:0.15rem 0}
.toc-desktop nav a:hover{color:#0f2b46}
:is(.dark .toc-desktop nav a){color:#9ca3af}
:is(.dark .toc-desktop nav a:hover){color:#e5e7eb}
.toc-mobile nav ul{list-style:none;padding:0;margin:0}
.toc-mobile nav a{color:#44403c}
:is(.dark .toc-mobile nav a){color:#d1d5db}

/* global image guard against overflow */
img{max-width:100%;height:auto}
.jasmine-container img{max-width:100%}

/* === article meta === */
article{display:block}
