.timed-notice {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  margin: 0 0 14px;
  padding: 10px 11px;
  overflow: hidden;
  border: 1px solid #dce6df;
  border-radius: 13px;
  background: #fff;
  color: #315142;
  box-shadow: 0 8px 20px rgba(21, 52, 34, 0.08);
  animation: notice-enter 180ms var(--ease-out) both;
}
.timed-notice.error,
.timed-notice.action {
  border-color: #e2b6af;
  background: #fff8f6;
  color: #8e3029;
}
.timed-notice.success { border-color: #a9dfbd; background: #f3fff7; color: #087944; }
.staff-notice-viewport { position: fixed; z-index: 1000; top: max(16px, env(safe-area-inset-top)); right: max(18px, env(safe-area-inset-right)); width: min(372px, calc(100vw - 32px)); display: grid; gap: 8px; pointer-events: none; }
.staff-notice-viewport .timed-notice { margin: 0; pointer-events: auto; }
.timed-notice-progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: #2cff73;
  transform-origin: left center;
  will-change: transform;
}
.timed-notice.persistent .timed-notice-progress {
  transform: scaleX(1) !important;
  background: currentColor;
  opacity: 0.38;
}
.timed-notice button {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: currentColor;
}
.timed-notice a {
  padding: 6px 9px;
  border-radius: 8px;
  background: #e5f8eb;
  color: #075e3a;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

@keyframes notice-enter {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.staff-notice-viewport { --ease-out:cubic-bezier(.22,1,.36,1); z-index:1200; font:14px/1.5 system-ui,sans-serif; }
.timed-notice-content { grid-column:1/-1; grid-row:2; }
.timed-notice > button { grid-column:4; grid-row:1; }
.account-message-inbox { display:grid; gap:12px; margin-bottom:20px; }
.account-message-inbox article { padding:18px; border:1px solid #dce7df; border-radius:14px; background:#f5faf7; }
.account-message-inbox small { color:#63746a; }
.account-message-inbox .marketing-approval-actions { margin-top:14px; }
.marketing-approval-applicant p { margin:8px 0; } .marketing-approval-applicant { padding-bottom:12px; margin-bottom:12px; border-bottom:1px solid #d6e5db; }
.marketing-approval-spinner { display:inline-block; width:14px; height:14px; margin-right:8px; border:2px solid #b7cabc; border-top-color:#17743e; border-radius:50%; animation:marketing-approval-spin .7s linear infinite; }
@keyframes marketing-approval-spin { to { transform:rotate(360deg); } }
.timed-notice:has(.marketing-approval-applicant) { background:#f3faf5; border-color:#bfddca; }
@media(prefers-reduced-motion:reduce) { .marketing-approval-spinner { animation:none; } }
.marketing-approval-actions > div { display:flex; gap:8px; }
.marketing-approval-actions button { width:auto; padding:7px 12px; height:auto; background:#e5f8eb; }
.marketing-approval-actions form { display:grid; gap:8px; margin-top:10px; animation:notice-enter 180ms ease-out; }
.marketing-approval-actions textarea { box-sizing:border-box; display:block; width:100%; min-height:80px; margin-top:6px; padding:8px; font:inherit; border:1px solid #dce6df; border-radius:8px; }
.marketing-phone { display:inline-flex; align-items:center; gap:6px; } .marketing-phone-eye { display:inline-grid; place-items:center; width:30px; height:30px; padding:4px; border:0; background:transparent; color:inherit; cursor:pointer; }
.staff-notice-viewport .timed-notice > span { overflow-wrap:anywhere; }
@media(max-width:600px) { .staff-notice-viewport { right:12px; top:max(12px,env(safe-area-inset-top)); width:calc(100vw - 24px); } .timed-notice { grid-template-columns:auto minmax(0,1fr) auto; } .timed-notice a { grid-column:2/-1; } }
@media(prefers-reduced-motion:reduce) { .timed-notice { animation:none !important; } .timed-notice:not(.persistent) .timed-notice-progress { transform:scaleX(1) !important; opacity:.28; } }
