/* Reset, shared type and layout utilities. Component selectors live in _src/. */
*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;
  background:var(--bg-page);scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent;
  scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--lq-chrome-gap) * 2)
}
body{
  margin:0;min-height:100vh;font-family:var(--font-sans);font-size:var(--fs-16);line-height:var(--lh-base);
  color:var(--text-1);background-color:var(--bg-page);background-image:var(--lq-page-glow);
  background-repeat:no-repeat;background-size:100% 1000px;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-synthesis-weight:none;text-rendering:optimizeLegibility
}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}
h1,h2,h3,h4,h5,h6{color:var(--text-1);font-weight:var(--fw-heading);letter-spacing:var(--ls-normal)}
ul,ol{margin:0;padding:0;list-style:none}
img,svg,video{display:block;max-width:100%}
a{color:var(--color-link);text-decoration:none}
a:hover{color:var(--color-primary-hover)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
button,input,select,textarea,a{touch-action:manipulation}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:var(--focus-ring);outline-offset:3px}
::placeholder{color:var(--text-4);opacity:1}
::selection{background:var(--lq-selection);color:var(--text-1)}
.l-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--r-full);border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--gray-400);background-clip:content-box}
::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}
.t-break{overflow-wrap:anywhere;word-break:break-word}

/* Display serif is reserved for the public presentation layer; data headings stay sans. */
.t-display{font-family:var(--font-display);font-size:clamp(40px,5.375vw,68.8px);font-weight:var(--fw-semibold);
  line-height:var(--lh-display);letter-spacing:var(--ls-display);color:var(--text-1);text-wrap:balance}
.t-h1{font-size:clamp(28px,3.2vw,40px);font-weight:var(--fw-heading);line-height:var(--lh-tight);letter-spacing:var(--ls-normal);color:var(--text-1)}
.t-h2{font-size:var(--fs-28);font-weight:var(--fw-heading);line-height:var(--lh-snug);letter-spacing:var(--ls-normal);color:var(--text-1)}
.t-h3{font-size:var(--fs-21);font-weight:var(--fw-heading);line-height:var(--lh-heading);letter-spacing:var(--ls-normal);color:var(--text-1)}
.t-h4{font-size:var(--fs-17);font-weight:var(--fw-heading);line-height:var(--lh-heading);letter-spacing:var(--ls-normal);color:var(--text-1)}
.t-h5,.t-title{font-size:var(--fs-15);font-weight:var(--fw-heading);line-height:var(--lh-heading);color:var(--text-1)}
.t-lead{font-size:var(--fs-16);line-height:var(--lh-base);color:var(--text-3);letter-spacing:var(--ls-normal)}
.t-body{font-size:var(--fs-16);line-height:var(--lh-base);color:var(--text-2)}
.t-note{font-size:var(--fs-12);line-height:var(--lh-heading);color:var(--text-3)}
.t-note-strong{font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--text-3-strong)}
.t-caption{font-size:var(--fs-11);line-height:var(--lh-heading);color:var(--text-4)}
.t-prose{font-size:var(--fs-16);line-height:var(--lh-loose);color:var(--text-2);letter-spacing:var(--ls-normal)}
.t-prose p+p{margin-top:var(--sp-4)}
.t-mono{font-family:var(--font-mono);letter-spacing:var(--ls-mono);font-feature-settings:"tnum" 1,"zero" 1}
.t-latin{letter-spacing:var(--ls-tight)}
.t-num{font-variant-numeric:tabular-nums}
.t-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.t-ellipsis-mid{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}
.t-relaxed{line-height:var(--lh-relaxed)}
.t-center{text-align:center}.t-right{text-align:right}
.t-underline{text-decoration:underline;text-underline-offset:3px}
.t-domain{font-family:var(--font-mono);letter-spacing:var(--ls-mono);overflow-wrap:anywhere}
body[data-shell="console"] .t-display,body[data-shell="admin"] .t-display{font-family:var(--font-sans);letter-spacing:var(--ls-normal)}

.c-1{color:var(--text-1)}.c-2{color:var(--text-2)}.c-3{color:var(--text-3)}.c-4{color:var(--text-4)}
.c-primary{color:var(--color-primary)}.c-success{color:var(--color-success)}.c-warning{color:var(--color-warning)}
.c-danger{color:var(--color-danger)}.c-danger-deep{color:var(--color-danger-deep)}.c-info{color:var(--color-info)}
.c-white{color:var(--text-on-brand)}

.l-flex{display:flex}.l-inline-flex{display:inline-flex}.l-grid{display:grid}.l-block{display:block}
.l-hidden{display:none !important}
.l-col{flex-direction:column}.l-wrap{flex-wrap:wrap}
.l-items-center{align-items:center}.l-items-start{align-items:flex-start}.l-items-end{align-items:flex-end}
.l-items-baseline{align-items:baseline}
.l-justify-between{justify-content:space-between}.l-justify-center{justify-content:center}.l-justify-end{justify-content:flex-end}
.l-flex1{flex:1;min-width:0}
.l-gap1{gap:var(--sp-1)}.l-gap2{gap:var(--sp-2)}.l-gap3{gap:var(--sp-3)}.l-gap4{gap:var(--sp-4)}
.l-gap5{gap:var(--sp-5)}.l-gap6{gap:var(--sp-6)}.l-gap8{gap:var(--sp-8)}
.l-mt1{margin-top:var(--sp-1)}.l-mt2{margin-top:var(--sp-2)}.l-mt3{margin-top:var(--sp-3)}
.l-mt4{margin-top:var(--sp-4)}.l-mt5{margin-top:var(--sp-5)}.l-mt6{margin-top:var(--sp-6)}
.l-mt8{margin-top:var(--sp-8)}.l-mt10{margin-top:var(--sp-10)}
.l-mb2{margin-bottom:var(--sp-2)}.l-mb3{margin-bottom:var(--sp-3)}.l-mb4{margin-bottom:var(--sp-4)}
.l-mb6{margin-bottom:var(--sp-6)}.l-mb8{margin-bottom:var(--sp-8)}
.l-p4{padding:var(--sp-4)}.l-p6{padding:var(--sp-6)}.l-p8{padding:var(--sp-8)}
.l-relative{position:relative}.l-sticky{position:sticky}
.l-w-full{width:100%}.l-measure{max-width:var(--measure)}
.l-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-6)}
.l-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6)}
.l-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-6)}
.l-split{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--sp-12);align-items:start}
.l-split--wide{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.l-split--reverse{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr)}
@media (max-width:1023px){
  .l-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .l-split,.l-split--wide,.l-split--reverse{grid-template-columns:minmax(0,1fr);gap:var(--sp-8)}
}
@media (max-width:767px){
  .l-grid-2,.l-grid-3,.l-grid-4{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}
  .t-h1{font-size:var(--fs-24)}
  .t-display{font-size:clamp(36px,9vw,48px)}
  .t-prose,.t-lead{font-size:var(--fs-16)}
}

.dd-ico{display:block;flex:0 0 auto;width:var(--ico-16);height:var(--ico-16);color:inherit;overflow:visible}
.dd-ico--16{width:var(--ico-16);height:var(--ico-16)}
.dd-ico--20{width:var(--ico-20);height:var(--ico-20)}
.dd-ico--24{width:var(--ico-24);height:var(--ico-24)}
.dd-ico--inline{display:inline-block;vertical-align:-.16em;margin:0 3px 0 1px}
.dd-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.dd-btn .dd-ico,.dd-tag .dd-ico,.dd-side__item .dd-ico,.dd-tabbar a .dd-ico,
.dd-alert .dd-ico,.dd-empty .dd-ico{color:currentColor}
.dd-ico--spin{animation:ddspin 1s linear infinite}
@keyframes ddspin{to{transform:rotate(360deg)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important}
}
@media print{
  .dd-header,.dd-side,.dd-topbar,.dd-tabbar,.dd-footer,.dd-fab,.dd-skip{display:none !important}
  body{background:#fff;color:#000}
  .dd-card{box-shadow:0 0 0 1px #ddd}
}
