:root {
  --accmaster-primary: #00796b;
  --accmaster-primary-hover: #00695c;
  --accmaster-primary-focus: rgba(0, 121, 107, 0.22);
  --accmaster-primary-soft: #e0f2f1;
  --accmaster-page-bg: #f3f7f6;
  --accmaster-card-bg: #ffffff;
  --accmaster-heading: #003f3d;
  --accmaster-text: #173f3c;
  --accmaster-muted: #52636a;
  --accmaster-border: #cad8d4;
  --accmaster-sidebar: #073f3a;
  --accmaster-sidebar-deep: #05332f;
  --accmaster-sidebar-text: #d8ebe7;
  --accmaster-sidebar-muted: #91b6ae;
  --accmaster-success: #16856f;
  --accmaster-warning: #c07a14;
  --accmaster-danger: #bd4b55;
  --accmaster-info: #327b89;
}

a {
  color: var(--accmaster-primary);
}

.btn-primary {
  --tblr-btn-bg: var(--accmaster-primary);
  --tblr-btn-border-color: var(--accmaster-primary);
  --tblr-btn-hover-bg: var(--accmaster-primary-hover);
  --tblr-btn-hover-border-color: var(--accmaster-primary-hover);
  --tblr-btn-focus-shadow-rgb: 22, 101, 52;
}

/*
 * Shared button-link interaction contract, promoted from the approved JV states.
 * Keep this anchor-specific so ordinary hyperlinks retain their normal behavior.
 */
a:where(
  .btn,
  .ostk-primary,
  .ostk-secondary,
  .accounting-period-primary,
  .accounting-period-secondary,
  [class*="-action"],
  [class*="-button"]
):is(:hover, :focus, :active) {
  text-decoration: none;
}

a:where(
  .btn-primary,
  .ostk-primary,
  .accounting-period-primary,
  [class*="-primary-action"],
  [class*="-action--primary"],
  [class*="-button--primary"]
):is(:hover, :focus, :active) {
  color: #fff;
}

a:where(
  .ostk-secondary,
  .accounting-period-secondary,
  [class*="-secondary-action"],
  [class*="-action--secondary"],
  [class*="-button--secondary"]
):is(:hover, :focus, :active) {
  color: var(--accmaster-primary);
}

a:where(
  [class*="-danger-action"],
  [class*="-action--danger"],
  [class*="-button--danger"]
):is(:hover, :focus, :active) {
  color: var(--accmaster-danger);
}

a:where(
  .btn,
  .ostk-primary,
  .ostk-secondary,
  .accounting-period-primary,
  .accounting-period-secondary,
  [class*="-action"],
  [class*="-button"]
):focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px var(--accmaster-primary-focus);
}

a:where(
  .btn,
  .ostk-primary,
  .ostk-secondary,
  .accounting-period-primary,
  .accounting-period-secondary,
  [class*="-action"],
  [class*="-button"]
) :where(svg, i) {
  color: inherit;
  stroke: currentColor;
}

/* Permanent accounting presentation contract: all monetary figures align right. */
.accounting-amount {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

input.accounting-amount {
  direction: ltr;
}

/* Reusable Company-format date input: visible text remains Company-authoritative. */
.company-date-picker{position:relative;display:block;min-width:0}.company-date-picker>[data-company-date-input]{padding-right:2.65rem!important}.company-date-picker__button{position:absolute;z-index:2;top:50%;right:.35rem;display:grid;place-items:center;width:32px;height:32px;padding:0;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;color:#315d58;cursor:pointer}.company-date-picker__button:hover{background:#e8f4f1;color:#00796b}.company-date-picker__button:focus-visible{outline:2px solid #008675;outline-offset:1px}.company-date-picker__button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.company-date-picker__native{position:absolute!important;width:1px!important;height:1px!important;right:1rem!important;bottom:0!important;padding:0!important;border:0!important;opacity:.01!important;pointer-events:none!important}

/* Shared application notification system. */
.app-notification-region {
  position: fixed;
  z-index: 1090;
  inset: var(--app-notification-top, 1rem) clamp(.75rem, 2vw, 1.5rem) auto auto;
  box-sizing: border-box;
  width: min(360px, calc(100vw - 2rem));
  max-width: calc(100vw - 2rem);
  margin: 0;
  pointer-events: none;
}

.app-notification {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) 2rem;
  align-items: start;
  gap: .65rem;
  width: 100%;
  padding: .8rem .75rem .8rem .9rem;
  overflow: hidden;
  border: 1px solid var(--app-notification-border);
  border-left-width: 4px;
  border-radius: 10px;
  color: var(--app-notification-text);
  background: var(--app-notification-bg);
  box-shadow: 0 14px 34px rgba(5, 51, 47, .16);
  opacity: 0;
  pointer-events: auto;
  transform: translateX(calc(100vw + 100%));
  transition: transform 220ms ease, opacity 180ms ease;
  will-change: transform, opacity;
}

.app-notification.is-visible { opacity: 1; transform: translateX(0); }
.app-notification.is-leaving { opacity: 0; transform: translateX(calc(100vw + 100%)); }
.app-notification--success { --app-notification-border: #79b9a8; --app-notification-bg: #edf8f4; --app-notification-text: #145b4c; }
.app-notification--error { --app-notification-border: #d9939a; --app-notification-bg: #fff1f2; --app-notification-text: #8e303b; }
.app-notification--warning { --app-notification-border: #dbb268; --app-notification-bg: #fff8e8; --app-notification-text: #805510; }
.app-notification--info { --app-notification-border: #84b5c1; --app-notification-bg: #eef8fa; --app-notification-text: #225f6c; }

.app-notification__icon {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--app-notification-border);
  font-size: .85rem;
  font-weight: 800;
  line-height: 1;
}

.app-notification__message { align-self: center; min-width: 0; padding-top: .35rem; font-size: .82rem; font-weight: 650; line-height: 1.4; overflow-wrap: anywhere; }
.app-notification__close { display: grid; width: 2rem; height: 2rem; place-items: center; padding: 0; border: 0; border-radius: 6px; color: currentColor; background: transparent; cursor: pointer; font-size: 1.25rem; line-height: 1; }
.app-notification__close:hover { background: rgba(0, 0, 0, .07); }
.app-notification__close:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; }
.app-notification-legacy-source,
[data-notification-legacy-source] { display: none !important; }

@media (max-width: 575.98px) {
  .app-notification-region { right: .625rem; left: .625rem; width: auto; max-width: none; }
  .app-notification { grid-template-columns: 1.8rem minmax(0, 1fr) 2rem; gap: .5rem; padding: .7rem .6rem .7rem .75rem; }
  .app-notification__icon { width: 1.8rem; height: 1.8rem; }
}

@media (prefers-reduced-motion: reduce) {
  .app-notification { transition-duration: 1ms; }
}
