:root{
  --oc-safe-top: env(safe-area-inset-top, 0px);
  --oc-safe-right: env(safe-area-inset-right, 0px);
  --oc-safe-bottom: env(safe-area-inset-bottom, 0px);
  --oc-safe-left: env(safe-area-inset-left, 0px);
  --oc-mobile-gap: 14px;
  --oc-surface: rgba(255,255,255,.96);
  --oc-border: var(--border, rgba(15,23,42,.12));
  --oc-shadow: 0 18px 40px rgba(15,23,42,.14);
}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
}
body{
  max-width:100%;
  overflow-x:hidden;
}
img,svg,canvas,video,iframe,embed,object{
  max-width:100%;
  height:auto;
}
iframe{border:0}
button,input,select,textarea{font:inherit}
.ocNavToggle,
.ocPubToggle,
.ocMobileBackdrop{display:none !important;}
input,select,textarea{max-width:100%}
a,button,[role="button"],input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
.oc-table-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  border-radius:16px;
}
.oc-table-scroll > table,
.oc-table-scroll > .table,
.oc-table-scroll > .docTable{
  min-width:640px;
}
.content,main,.panel,.card,.dashPanel,.lpSection,.section,.pubCard,.lpTile{
  min-width:0;
}
@supports (content-visibility:auto){
  main .panel,
  main .card,
  main .lpSection,
  main .section,
  main .pubCard,
  main .lpTile,
  main article,
  main section{
    content-visibility:auto;
    contain-intrinsic-size: 1px 720px;
  }
}
@media (hover:none) and (pointer:coarse){
  .btn,.pubBtn,.sideNav__item,.menu a,.pubNav a{min-height:44px}
}
@media (max-width:1200px){
  .appHeader__row{
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
    gap:12px;
  }
  .appHeader__brand,
  .appHeader__search,
  .appHeader__actions{
    min-width:0;
  }
  .appHeader__actions{
    flex-wrap:wrap;
    justify-content:flex-start;
  }
  .dashGrid,
  .kpiRow,
  .docTwoCols{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:980px){
  body{
    padding-bottom:var(--oc-safe-bottom);
  }
  .ui-pro .appHeader,
  .pubHeader,
  .appHeader{
    padding-left:var(--oc-safe-left);
    padding-right:var(--oc-safe-right);
  }
  .ui-pro .content,
  .content,
  .main-content,
  .pubMain,
  .section,
  .lpSection{
    padding-left:var(--oc-mobile-gap) !important;
    padding-right:var(--oc-mobile-gap) !important;
  }
  .grid,
  .cardGrid,
  .pubGrid,
  .lpGrid,
  .lpPricing,
  .lpSteps,
  .docTwoCols,
  .kpiRow,
  .dashGrid,
  .twoCols,
  [style*="grid-template-columns"]{
    grid-template-columns:1fr !important;
  }
  .appHeader__row,
  .pubHeaderRow{
    padding:10px var(--oc-mobile-gap) 12px;
  }
  .appHeader__brand{
    min-width:0;
  }
  .appTitle,
  .appTitleText,
  .title{
    word-break:break-word;
  }
  .appHeader__search{
    width:100%;
  }
  .appHeader__actions,
  .pubActions,
  .pageActions,
  .toolbar__actions,
  .panel__header,
  .boardTop,
  .pubHeaderInner{
    flex-wrap:wrap;
  }
  .panel__header,
  .boardTop{
    gap:10px;
  }
  .panel,
  .card,
  .dashPanel,
  .pubCard,
  .lpTile,
  .lpPriceCard{
    padding:14px;
    border-radius:18px;
  }
  .menu,
  .dropdown .menu,
  .modal,
  .dialog,
  .popover{
    max-width:min(96vw, 420px);
  }
  .ui-pro .sideNav{
    display:block !important;
    width:min(86vw, 320px);
    max-width:320px;
    height:100dvh;
    padding-top:calc(12px + var(--oc-safe-top));
    padding-bottom:calc(18px + var(--oc-safe-bottom));
    transform:translateX(-112%);
    transition:transform .24s ease, box-shadow .24s ease;
    z-index:120;
    box-shadow:none;
  }
  body.oc-nav-open .ui-pro .sideNav{
    transform:translateX(0);
    box-shadow:var(--oc-shadow);
  }
  body.oc-nav-open{
    overflow:hidden;
  }
  .ocMobileBackdrop{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.42);
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease;
    z-index:110;
  }
  body.oc-nav-open .ocMobileBackdrop{
    opacity:1;
    pointer-events:auto;
  }
  .ocNavToggle,
  .ocPubToggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border-radius:14px;
    border:1px solid var(--oc-border);
    background:rgba(255,255,255,.92);
    color:inherit;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
  }
  .ocNavToggle__bars,
  .ocPubToggle__bars{
    display:grid;
    gap:4px;
  }
  .ocNavToggle__bars span,
  .ocPubToggle__bars span{
    width:18px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    display:block;
  }
  .appHeader__brand{
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
  }
  .pubHeaderRow{
    align-items:stretch;
    gap:10px;
  }
  .pubHeaderInner{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  .pubNav,
  .pubActions{
    display:none;
    width:100%;
  }
  body.oc-public-nav-open .pubNav{
    display:grid !important;
    gap:8px;
    grid-template-columns:1fr;
    padding:14px;
    border:1px solid var(--oc-border);
    border-radius:18px;
    background:var(--oc-surface);
    box-shadow:0 16px 30px rgba(15,23,42,.08);
  }
  body.oc-public-nav-open .pubNav a{
    padding:10px 12px;
    border-radius:12px;
    background:rgba(255,255,255,.8);
  }
  body.oc-public-nav-open .pubActions{
    display:grid !important;
    gap:8px;
    grid-template-columns:1fr;
  }
  body.oc-public-nav-open .pubActions .pubBtn{
    justify-content:center;
  }
  .table,
  .tablePro,
  .docTable{
    min-width:640px;
  }
}
@media (max-width:720px){
  .appTitle,.appTitleText,.title{font-size:clamp(1.2rem,5vw,1.6rem)}
  .appSubtitle,.tag{font-size:12px}
  .appHeader__actions .btn,
  .pubBtn,
  .btn{
    width:100%;
    justify-content:center;
  }
  .appHeader__actions .dropdown{
    width:100%;
  }
  .appHeader__actions .dropdown > .btn{
    width:100%;
  }
  .authHead,
  .lpHero__ctas,
  .lpTrust,
  .lpPayRow,
  .authLinks,
  .pageActions{
    flex-direction:column;
    align-items:stretch;
  }
  .authLinks a,
  .lpHero__ctas .pubBtn,
  .lpCta__actions .pubBtn{
    width:100%;
    text-align:center;
  }
  .appHeader__search,
  .appHeader__actions,
  .pubActions,
  .pageActions,
  .toolbar__actions{
    width:100%;
  }
  .content iframe,
  .content canvas,
  .content svg{
    width:100% !important;
  }
}
@media (max-width:560px){
  .ui-pro .content,
  .content,
  .main-content,
  .pubMain,
  .section,
  .lpSection{
    padding-left:12px !important;
    padding-right:12px !important;
  }
  .panel,
  .card,
  .dashPanel,
  .pubCard,
  .lpTile,
  .lpPriceCard,
  .callout{
    border-radius:16px;
    padding:12px;
  }
  input,
  select,
  textarea{
    font-size:16px !important;
  }
  .kpiCard__value,
  .price,
  .boardTitle{
    font-size:clamp(1.2rem, 6vw, 1.8rem) !important;
  }
  .pubHeaderRow,
  .appHeader__row{
    padding-left:12px;
    padding-right:12px;
  }
}

.oc-visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.oc-skip-link{
  position:fixed;
  top:12px;
  left:12px;
  z-index:10000;
  padding:10px 14px;
  border-radius:14px;
  background:#0b3d91;
  color:#fff;
  text-decoration:none;
  transform:translateY(-140%);
  transition:transform .18s ease;
  box-shadow:0 10px 24px rgba(15,23,42,.16);
}
.oc-skip-link:focus{
  transform:translateY(0);
}

label.oc-required::after{
  content:' *';
  color:#b42318;
}

.oc-table-scroll:focus-visible{
  outline:2px solid rgba(11,61,145,.45);
  outline-offset:3px;
}

[id$="_msg"],
[id$="_error"],
[id$="_hint"]{
  scroll-margin-top:90px;
}

@media (max-width:560px){
  table.oc-table-stackable thead{
    display:none;
  }
  table.oc-table-stackable,
  table.oc-table-stackable tbody,
  table.oc-table-stackable tr,
  table.oc-table-stackable td{
    display:block;
    width:100%;
  }
  table.oc-table-stackable{
    min-width:0 !important;
    border-collapse:separate;
    border-spacing:0;
  }
  table.oc-table-stackable tbody{
    display:grid;
    gap:10px;
  }
  table.oc-table-stackable tr{
    border:1px solid rgba(15,23,42,.10);
    border-radius:16px;
    padding:10px 12px;
    background:#fff;
    box-shadow:0 8px 20px rgba(15,23,42,.05);
  }
  table.oc-table-stackable td{
    min-width:0;
    padding:7px 0;
    border:0 !important;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    text-align:right;
  }
  table.oc-table-stackable td::before{
    content:attr(data-label);
    flex:1 1 auto;
    min-width:0;
    text-align:left;
    font-weight:700;
    color:rgba(15,23,42,.72);
  }
}
