:root {
  color-scheme:only light; --ve-bg:#f8faff; --ve-surface:#fff; --ve-soft:#fff1f2; --ve-text:#0f172a;
  --ve-muted:#475569; --ve-line:#e4eaf4; --ve-accent:#d71920; --ve-accent-hover:#b5121b;
  --ve-secondary:#b54550; --ve-success:#047857; --ve-success-bg:#e8faf2; --ve-danger:#b42336;
  --ve-shadow:0 4px 24px rgb(32 61 113 / 4%); --ve-radius:18px; --ve-on-accent:#fff;
  --ve-safe-top:env(safe-area-inset-top,0px); --ve-safe-bottom:env(safe-area-inset-bottom,0px);
}
html.vet-dark { color-scheme:dark; --ve-bg:#101a2c; --ve-surface:#18253b; --ve-soft:#38283a;
  --ve-text:#f1f5ff; --ve-muted:#a3b3cd; --ve-line:#2d3d57; --ve-accent:#ff7b83;
  --ve-accent-hover:#ff9ba1; --ve-secondary:#eab0b7; --ve-success:#62dbb1; --ve-success-bg:#173d38;
  --ve-danger:#ff9ba8; --ve-shadow:0 4px 24px rgb(5 13 28 / 12%); --ve-on-accent:#0c1c36;
}
* { box-sizing:border-box; }
html { scroll-padding-top:24px; }
body { background:var(--ve-bg); color:var(--ve-text); font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; }
.vet-header { padding-top:max(20px,var(--ve-safe-top)); }
.vet-header-note,.vet-footer { color:var(--ve-muted); }
.ve-ui { min-width:0; }
.ve-ui [hidden] { display:none!important; }
.ve-ui h1 { font-size:clamp(28px,4vw,32px); line-height:1.2; letter-spacing:-.035em; font-weight:700; margin:0 0 16px; }
.ve-ui h2 { font-size:22px; line-height:1.3; font-weight:650; margin:0 0 14px; letter-spacing:-.02em; }
.ve-ui h3 { font-size:18px; line-height:1.4; font-weight:600; margin:16px 0 12px; }
.ve-ui p { margin:0 0 16px; overflow-wrap:anywhere; }
.ve-ui strong { font-weight:600; }
.ve-ui small,.ve-ui time { font-size:13px; color:var(--ve-muted); }
.ve-ui a { color:var(--ve-accent); text-underline-offset:3px; }
.ve-muted { color:var(--ve-muted); font-size:14px; }
.ve-eyebrow { font-size:12px; font-weight:600; color:var(--ve-accent); letter-spacing:.06em; display:block; margin-bottom:12px; }
.ve-panel,.ve-match-card { background:var(--ve-surface); border:1px solid var(--ve-line); border-radius:var(--ve-radius); padding:24px; box-shadow:var(--ve-shadow); margin-bottom:20px; min-width:0; }
.ve-screen { margin-bottom:24px; }
.ve-js .ve-screen { display:none; }
.ve-js .ve-screen.is-active { display:block; }
.ve-ui button,.ve-ui .ve-button,.ve-icon-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:11px 18px; border:1px solid var(--ve-line); border-radius:13px; background:var(--ve-surface); color:var(--ve-text); font:600 14px/1.4 inherit; font-family:inherit; font-size:14px; text-decoration:none; cursor:pointer; transition:background .18s,transform .18s,border-color .18s; }
.ve-ui button:hover,.ve-ui .ve-button:hover { background:var(--ve-soft); border-color:var(--ve-accent); }
.ve-ui button:active,.ve-ui .ve-button:active { transform:scale(.98); }
.ve-ui button:disabled { opacity:.5; cursor:not-allowed; }
.ve-ui .ve-primary,.ve-ui button[type=submit],.ve-ui button[name=ve_exchange_action],.ve-ui .ve-button-primary { background:var(--ve-accent); color:var(--ve-on-accent); border-color:transparent; }
.ve-ui .ve-primary:hover,.ve-ui button[type=submit]:hover { background:var(--ve-accent-hover); }
.ve-ui button[name=ve_delete_request] { color:var(--ve-danger); background:var(--ve-surface); border-color:var(--ve-line); }
:where(a,button,input,select,summary):focus-visible { outline:3px solid var(--ve-accent); outline-offset:3px; }
.ve-ui input:not([type=hidden]):not([type=checkbox]),.ve-ui select { display:block; width:100%; min-width:0; min-height:48px; padding:12px 14px; margin:6px 0 16px; border:1px solid var(--ve-line); border-radius:12px; background:var(--ve-bg); color:var(--ve-text); font:16px/1.4 inherit; font-family:inherit; font-size:16px; }
.ve-ui input::placeholder { color:var(--ve-muted); }
.ve-ui input:focus,.ve-ui select:focus { border-color:var(--ve-accent); }
.ve-ui input:user-invalid,.ve-ui select:user-invalid { border-color:var(--ve-danger); }
.ve-ui label,.ve-field-label { display:block; font-size:14px; font-weight:500; }
.ve-ui form>br { display:none; }
.ve-ui input[type=checkbox] { accent-color:var(--ve-accent); width:22px; height:22px; flex-shrink:0; }
.ve-ui .ve-consent { display:flex; align-items:flex-start; gap:12px; padding:12px 0; font-size:13px; margin:12px 0; }
.ve-form-panel { max-width:640px; }
.ve-form-panel>a:first-child { display:inline-flex; align-items:center; min-height:44px; }
.ve-actions { display:flex; flex-wrap:wrap; gap:10px; }
.ve-empty,.ve-status { padding:20px; border-radius:14px; background:var(--ve-soft); color:var(--ve-muted); font-size:14px; margin-bottom:20px; }
.ve-status { border:1px solid var(--ve-line); }
.ve-empty h2,.ve-empty h3 { color:var(--ve-text); }
.ve-icon { width:24px; height:24px; flex-shrink:0; }
.ve-icon-button { width:46px; padding:10px; }
.ve-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.ve-section-heading h2,.ve-section-heading p:last-child { margin-bottom:0; }
.ve-dashboard,.ve-profile-layout { display:grid; grid-template-columns:1.15fr 1fr; gap:24px; align-items:start; }
.ve-vacation-card { border-top:3px solid var(--ve-accent); }
.ve-date-large { font-size:26px; font-weight:650; letter-spacing:-.025em; }
.ve-date-list { display:grid; gap:8px; margin-bottom:20px; }
.ve-date-range { display:block; padding:12px; border:1px solid var(--ve-line); border-radius:12px; background:var(--ve-bg); font-size:14px; }
.ve-feature-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:var(--ve-soft); color:var(--ve-accent); margin-bottom:20px; }
.ve-app-nav { display:flex; gap:8px; margin-bottom:32px; padding:8px; border:1px solid var(--ve-line); border-radius:16px; background:var(--ve-surface); }
.ve-app-nav a { display:flex; align-items:center; justify-content:center; gap:9px; flex:1; min-height:48px; padding:10px; text-decoration:none; color:var(--ve-muted); font-size:14px; border-radius:12px; }
.ve-app-nav a[aria-current=page] { color:var(--ve-accent); background:var(--ve-soft); font-weight:600; }
.ve-profile-identity { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.ve-profile-identity h2 { font-size:20px; margin:0 0 6px; overflow-wrap:anywhere; }
.ve-profile-identity p { margin:0; }
.ve-avatar { display:inline-grid; place-items:center; width:50px; height:50px; flex-shrink:0; border-radius:16px; background:var(--ve-soft); color:var(--ve-accent); font-size:18px; font-weight:600; }
.ve-profile-links { margin-bottom:24px; }
.ve-profile-links a { display:flex; justify-content:space-between; align-items:center; min-height:52px; padding:12px 0; border-bottom:1px solid var(--ve-line); text-decoration:none; color:var(--ve-text); font-size:14px; }
.ve-theme-control { border:0; padding:0; margin:0; min-width:0; }
.ve-theme-control legend { font-size:14px; margin-bottom:12px; }
.ve-segmented { display:flex; padding:4px; gap:3px; background:var(--ve-bg); border:1px solid var(--ve-line); border-radius:14px; }
.ve-segmented button { flex:1; padding:8px 6px; background:transparent; border:0; font-size:13px; }
.ve-segmented button[aria-pressed=true] { background:var(--ve-surface); color:var(--ve-accent); box-shadow:var(--ve-shadow); }
.ve-notification-item { display:flex; gap:14px; padding:20px 0; border-top:1px solid var(--ve-line); }
.ve-notification-item>.ve-icon { color:var(--ve-accent); margin-top:4px; }
.ve-notification-item p { font-size:14px; margin-bottom:8px; white-space:normal; }
.ve-notification-item time { font-size:12px; }
.ve-ui .ve-range-row { display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; padding:16px; background:var(--ve-soft); border-radius:14px; margin-bottom:12px; }
.ve-range-row>span { align-self:center; }
.ve-range-row input { grid-column:2; }
.ve-range-row .ve-remove-range { grid-column:1/-1; }
.ve-request-step { display:flex; align-items:center; gap:10px; margin-top:26px!important; }
.ve-request-step>span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--ve-soft); color:var(--ve-accent); font-size:13px; }
.ve-match-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
.ve-match-card { padding:0; margin:0; overflow:hidden; }
.ve-match-card summary { padding:22px; list-style:none; cursor:pointer; transition:background .18s; }
.ve-match-card summary:hover { background:var(--ve-soft); }
.ve-match-card summary:focus-visible { outline:3px solid var(--ve-accent); outline-offset:-3px; }
.ve-match-card details[open] .ve-card-hint { display:none; }
.ve-match-card summary::-webkit-details-marker { display:none; }
.ve-match-person { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.ve-match-person strong { display:block; }
.ve-badge { display:inline-flex; gap:6px; padding:5px 10px; background:var(--ve-success-bg); color:var(--ve-success); border-radius:8px; font-size:12px; font-weight:600; margin-bottom:14px; }
.ve-match-details { padding:22px; border-top:1px solid var(--ve-line); }
.ve-match-details h3 { margin-top:0; }
.ve-match-compare { display:grid; gap:12px; margin:20px 0; }
.ve-match-compare>div { padding:14px; background:var(--ve-soft); border-radius:12px; }
.ve-match-compare .ve-icon { color:var(--ve-accent); justify-self:center; }
.ve-card-hint { display:block; color:var(--ve-accent); font-size:13px; margin-top:16px; }
.ve-js .ve-landing.is-active,.ve-landing { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; padding:38px 0; }
.ve-hero-copy h1 { font-size:clamp(32px,4.2vw,48px); line-height:1.14; max-width:540px; }
.ve-hero-copy>p { color:var(--ve-muted); font-size:16px; max-width:480px; }
.ve-hero-actions { display:flex; align-items:center; gap:12px; margin:16px 0 20px; flex-wrap:wrap; }
.ve-hero-actions .ve-primary { min-width:180px; }
.ve-hero-actions .ve-button:not(.ve-primary) { min-width:130px; }

.ve-calendar-art { min-height:310px; display:flex; align-items:center; justify-content:center; position:relative; background:radial-gradient(ellipse,var(--ve-soft),transparent 70%); }
.ve-art-calendar { width:180px; padding:20px; background:var(--ve-surface); border:1px solid var(--ve-line); border-radius:20px; box-shadow:var(--ve-shadow); transform:rotate(-7deg) translateY(-25px); }
.ve-art-calendar>span { display:block; font-size:13px; font-weight:600; margin-bottom:12px; }
.ve-art-calendar>.ve-icon { color:var(--ve-accent); margin-bottom:16px; }
.ve-art-second { transform:rotate(7deg) translateY(30px); }
.ve-art-second>.ve-icon { color:var(--ve-secondary); }
.ve-art-days { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.ve-art-days i { aspect-ratio:1; border-radius:3px; background:var(--ve-line); }
.ve-art-days i:nth-child(n+8):nth-child(-n+14) { background:var(--ve-accent); }
.ve-art-second i:nth-child(n+8):nth-child(-n+14) { background:var(--ve-secondary); }
.ve-art-arrow { position:absolute; z-index:1; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--ve-accent); color:var(--ve-on-accent); border:5px solid var(--ve-bg); }
.ve-landing-notes { grid-column:1/-1; display:flex; gap:28px; justify-content:space-between; border-top:1px solid var(--ve-line); padding-top:30px; }
.ve-landing-notes p { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ve-muted); }
.ve-landing-notes .ve-icon { color:var(--ve-accent); width:20px; }
.ve-guest-settings { max-width:360px; margin:24px auto; display:grid; gap:16px; }
.ve-messenger-row { overflow-wrap:anywhere; }
.ve-session-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; margin-bottom:12px; }
.ve-app .ve-messenger-row { display:grid; grid-template-columns:115px minmax(0,1fr); align-items:center; gap:12px; padding:16px 0; margin:0; border-top:1px solid var(--ve-line); }
.ve-messenger-name { display:flex; align-items:center; gap:10px; }
.ve-messenger-name .ve-icon { color:var(--ve-accent); }
.ve-messenger-status { font-size:13px; color:var(--ve-muted); text-align:right; }
.ve-messenger-actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.ve-messenger-actions .ve-button,.ve-messenger-actions button { width:100%; padding-inline:8px; }
.ve-device-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-top:1px solid var(--ve-line); flex-wrap:wrap; }
.ve-device-name { display:flex; align-items:center; gap:10px; font-size:14px; }
.ve-device-name .ve-icon { color:var(--ve-accent); }
.ve-device-actions { margin-left:auto; }
.ve-device-actions button { min-width:100px; }
.ve-request-panel { width:100%; }
#ve-push-status:empty { display:none; }
.ve-in-miniapp #ve-install-row { display:none; }
@media(display-mode:standalone) { #ve-install-row { display:none; } }
@media (max-width:760px) {
  .vet-main { padding-top:8px; padding-bottom:calc(100px + var(--ve-safe-bottom)); }
  .ve-panel { padding:20px; }
  .ve-app-nav { position:fixed; bottom:0; left:0; right:0; z-index:50; margin:0; padding:6px 4px calc(6px + var(--ve-safe-bottom)); border-radius:18px 18px 0 0; border-bottom:0; gap:0; box-shadow:0 -4px 20px rgb(25 49 89 / 5%); }
  .ve-app-nav a { flex-direction:column; gap:4px; padding:7px 1px; min-width:0; font-size:10px; border-radius:12px; min-height:58px; }
  .ve-dashboard,.ve-profile-layout,.ve-match-grid { grid-template-columns:1fr; gap:16px; }
  .ve-dashboard>.ve-panel { margin:0; }
  .ve-form-panel { width:100%; }
  .ve-ui h1 { font-size:28px; }
  .ve-ui h2 { font-size:21px; }
  .ve-js .ve-landing.is-active,.ve-ui .ve-landing { grid-template-columns:1fr; gap:10px; padding:24px 4px 0; }
  .ve-hero-copy h1 { font-size:clamp(26px, 7vw, 34px); max-width:100%; }
  .ve-hero-actions { flex-direction:column; width:100%; gap:10px; }
  .ve-hero-actions .ve-button { width:100%; }
  .ve-calendar-art { min-height:260px; }
  .ve-art-calendar { width:145px; padding:16px; }
  .ve-landing-notes { flex-direction:column; gap:0; padding-top:20px; }
  .ve-range-row input { max-width:100%; }
  .ve-ui .ve-range-row { grid-template-columns:1fr; }
  .ve-range-row input { grid-column:1; margin-bottom:4px!important; }
  .ve-ui button[type=submit] { width:100%; }
  .ve-keyboard-open .ve-app-nav { visibility:hidden; }
  .vet-footer { padding-bottom:calc(100px + var(--ve-safe-bottom)); }
}
@media(display-mode:standalone) { .vet-footer { display:none; } }
.ve-in-miniapp .vet-footer { display:none; }
.ve-in-miniapp {
  --ve-safe-top:max(env(safe-area-inset-top,0px),calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px)));
  --ve-safe-bottom:max(env(safe-area-inset-bottom,0px),calc(var(--tg-safe-area-inset-bottom,0px) + var(--tg-content-safe-area-inset-bottom,0px)));
}
.ve-ui form[aria-busy=true] button[type=submit] { opacity:.65; cursor:progress; }



.ve-ui a:not(.ve-button):not([data-nav]) { touch-action:manipulation; }
.ve-modal { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:24px; }
.ve-modal-backdrop { position:absolute; inset:0; background:rgb(8 18 39 / 55%); }
.ve-modal-card { position:relative; width:min(100%,480px); max-height:calc(100dvh - 48px); overflow:auto; padding:26px; border:1px solid var(--ve-line); border-radius:20px; background:var(--ve-surface); box-shadow:var(--ve-shadow); }
.ve-modal-close { float:right; width:44px; margin:0 0 12px 12px; }
.ve-contact-list { display:flex; flex-wrap:wrap; gap:12px; }
.ve-org-help { margin:16px 0; }
body.login { background:var(--ve-bg); color:var(--ve-text); }
.login form { background:var(--ve-surface); border:1px solid var(--ve-line); border-radius:18px; box-shadow:var(--ve-shadow); }
.login form .input,.login input[type=text],.login input[type=password] { background:var(--ve-bg); color:var(--ve-text); border:1px solid var(--ve-line); border-radius:12px; min-height:46px; }
.login label,.login #nav a,.login #backtoblog a { color:var(--ve-text); }
.login .button-primary { background:var(--ve-accent); color:var(--ve-on-accent); border:0; border-radius:12px; min-height:44px; }
.login .message,.login .notice,.login #login_error { background:var(--ve-surface); color:var(--ve-text); border-left-color:var(--ve-accent); }
.login .wp-hide-pw { color:var(--ve-accent); }
@media(max-width:760px) {
  .ve-modal { align-items:end; padding:0; }
  .ve-modal-card { width:100%; border-radius:20px 20px 0 0; padding:24px 20px calc(24px + var(--ve-safe-bottom)); max-height:85dvh; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; animation:none!important; scroll-behavior:auto!important; } }
/* Group exchanges share the match avatars, palette and controls. */
.ve-chain-card { margin-block:20px; overflow-wrap:anywhere; }
.ve-match-total { display:flex; align-items:center; gap:14px; margin:18px 0 8px; }
.ve-match-total>strong { color:var(--ve-accent); font-size:38px; line-height:1; }
.ve-match-total>span { font-size:14px; max-width:22ch; }
.ve-activity-summary { border-top:1px solid var(--ve-line); margin-top:24px; padding-top:4px; }
.ve-activity-summary dl { margin:0 0 12px; }
.ve-activity-summary dl>div { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:8px 0; }
.ve-activity-summary dt { font-size:14px; color:var(--ve-muted); }
.ve-activity-summary dd { margin:0; font-size:22px; font-weight:650; }
.ve-activity-summary p { font-size:12px; }
.ve-chain-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; }
.ve-chain-heading .ve-badge { margin:0; align-items:center; }
.ve-chain-heading .ve-badge .ve-icon,.ve-chain-status .ve-icon { width:18px; height:18px; }
.ve-chain-explanation { color:var(--ve-muted); font-size:14px; max-width:80ch; }
.ve-chain-result { display:flex; align-items:center; gap:14px; padding:18px; background:var(--ve-soft); border-radius:14px; margin:20px 0; }
.ve-chain-result .ve-feature-icon { margin:0; background:var(--ve-surface); flex-shrink:0; }
.ve-ui .ve-chain-result h3 { font-size:14px; font-weight:500; margin:0 0 4px; }
.ve-chain-result h3 span { display:block; font-size:22px; font-weight:650; color:var(--ve-text); margin-top:4px; }
.ve-chain-progress { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; font-size:14px; margin:20px 0; }
.ve-chain-progress progress { appearance:none; border:0; height:6px; border-radius:6px; overflow:hidden; width:180px; max-width:100%; background:var(--ve-line); color:var(--ve-success); }
.ve-chain-progress progress::-webkit-progress-bar { background:var(--ve-line); }
.ve-chain-progress progress::-webkit-progress-value { background:var(--ve-success); border-radius:6px; }
.ve-chain-progress progress::-moz-progress-bar { background:var(--ve-success); border-radius:6px; }
.ve-chain-list-title { font-size:14px; font-weight:600; margin:24px 0 4px; }
.ve-chain-list { padding:0; margin:0; list-style:none; }
.ve-chain-list li { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; gap:16px; padding:18px 0; border-bottom:1px solid var(--ve-line); }
.ve-chain-list .ve-match-person { margin:0; align-items:flex-start; min-width:0; }
.ve-chain-list .ve-match-person>div { min-width:0; }
.ve-chain-you { color:var(--ve-accent); font-size:12px; display:block; margin-top:2px; }
.ve-chain-status { display:flex; align-items:center; gap:6px; color:var(--ve-muted); font-size:12px; line-height:1.5; margin-top:5px; }
.ve-chain-status.is-accepted { color:var(--ve-success); }
.ve-chain-dates { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:12px; }
.ve-chain-dates strong { display:block; font-size:14px; }
.ve-chain-dates .ve-muted { font-size:12px; }
.ve-chain-arrow { color:var(--ve-muted); }
.ve-chain-actions { display:flex; flex-wrap:wrap; gap:10px; padding-top:20px; }
.ve-chain-actions>p { flex-basis:100%; }
.ve-chain-card form { margin:0; }
.ve-ui .ve-chain-decline { color:var(--ve-danger); border-color:var(--ve-danger); }
.ve-chain-status.is-declined { color:var(--ve-danger); }
.ve-chain-refusal { padding:14px; background:var(--ve-soft); border-radius:12px; color:var(--ve-danger); font-size:14px; }
.ve-chain-phone { display:flex; align-items:center; gap:6px; margin-top:8px; font-size:13px; }
.ve-chain-phone .ve-icon { width:16px; height:16px; }
.ve-exchange-contacts { margin-top:16px; padding-top:12px; border-top:1px solid var(--ve-line); text-align:left; }
.ve-contact-number { margin:6px 0 10px; overflow-wrap:anywhere; font-weight:600; }
.ve-contact-actions { display:flex; flex-wrap:wrap; gap:8px; }
.ve-contact-actions .ve-button { padding:8px 12px; font-size:14px; }
.ve-match-card > .ve-exchange-contacts { margin:0; padding:16px 22px; }
@media(max-width:760px) {
  .ve-chain-list li { grid-template-columns:minmax(0,1fr); gap:12px; }
  .ve-chain-result { padding:14px; gap:12px; align-items:flex-start; }
  .ve-chain-result h3 span { font-size:20px; }
  .ve-chain-dates { background:var(--ve-bg); padding:12px; border-radius:12px; gap:8px; }
  .ve-chain-actions form,.ve-chain-actions button,.ve-chain-actions>.ve-button { width:100%; }
}
.ve-about-heading { margin-top:24px; }
.ve-release-list { display:grid; gap:12px; }
.ve-ui .ve-release { margin:0; }
.ve-release summary { cursor:pointer; display:list-item; line-height:1.6; }
.ve-release-version { display:inline-block; color:var(--ve-accent); font-weight:700; margin-right:12px; }
.ve-release-title { font-weight:600; overflow-wrap:anywhere; }
.ve-release ul { padding-left:22px; margin:16px 0 0; }
.ve-release li + li { margin-top:8px; }

.ve-ui .ve-button-ghost { background:transparent; border-color:var(--ve-line); color:var(--ve-text); }
.ve-ui .ve-button-ghost:hover { background:var(--ve-soft); }
.ve-ui .ve-button-danger { background:var(--ve-surface); border-color:var(--ve-danger); color:var(--ve-danger); }
.ve-ui .ve-button-danger:hover { background:var(--ve-soft); }

.ve-notice { display:flex; align-items:center; gap:12px; padding:14px 18px; border-radius:12px; font-size:14px; font-weight:550; margin-bottom:20px; line-height:1.45; border:1px solid transparent; }
.ve-notice-error { background:var(--ve-soft); color:var(--ve-danger); border-color:rgba(215,25,32,0.25); }
.ve-notice-success { background:var(--ve-success-bg); color:var(--ve-success); border-color:rgba(4,120,87,0.25); }
.ve-notice .ve-icon { width:20px; height:20px; flex-shrink:0; }

.ve-action-center { margin-bottom:24px; display:flex; flex-direction:column; gap:14px; }
.ve-action-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; border-radius:var(--ve-radius); border:1px solid var(--ve-line); background:var(--ve-surface); box-shadow:var(--ve-shadow); }
.ve-action-urgent { border-left:4px solid var(--ve-accent); background:linear-gradient(90deg, var(--ve-soft) 0%, var(--ve-surface) 40%); }
.ve-action-info { border-left:4px solid var(--ve-success); }
.ve-action-content { min-width:0; flex:1; }
.ve-action-content strong { display:block; font-size:16px; margin-bottom:4px; }
.ve-action-content p { margin:0; font-size:14px; color:var(--ve-muted); }
.ve-action-badge { display:inline-block; padding:3px 8px; border-radius:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; background:var(--ve-soft); color:var(--ve-accent); margin-bottom:6px; }
.ve-action-badge.ve-badge-success { background:var(--ve-success-bg); color:var(--ve-success); }
.ve-action-controls { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.ve-messenger-banner { margin-bottom:24px; }

.ve-password-wrap { position:relative; display:block; width:100%; margin:6px 0 16px; }
#ve-login .ve-password-wrap { margin-bottom:0; }
.ve-password-wrap input { margin:0!important; width:100%; padding-right:48px!important; }
.ve-password-toggle { position:absolute; top:50%; right:4px; transform:translateY(-50%); width:44px; height:44px; min-height:44px!important; max-height:44px; padding:0!important; border:0!important; background:transparent!important; color:var(--ve-muted); cursor:pointer; display:flex; align-items:center; justify-content:center; border-radius:8px; z-index:2; box-shadow:none!important; transition:color .18s,background-color .18s; }
.ve-password-toggle:hover { color:var(--ve-text); background:var(--ve-soft)!important; }
.ve-password-toggle:active { transform:translateY(-50%) scale(.95)!important; }
.ve-password-toggle:focus-visible { outline:2px solid var(--ve-accent); outline-offset:2px; }
.ve-password-toggle::before { content:''; width:20px; height:20px; background-color:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 12a3 3 0 11-6 0 3 3 0 016 0z'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z'/%3E%3C/svg%3E") no-repeat center / contain; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 12a3 3 0 11-6 0 3 3 0 016 0z'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z'/%3E%3C/svg%3E") no-repeat center / contain; }
.ve-password-toggle.is-shown::before { mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l18 18'/%3E%3C/svg%3E") no-repeat center / contain; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l18 18'/%3E%3C/svg%3E") no-repeat center / contain; }

.ve-login-actions { display:flex; align-items:center; gap:16px; margin-top:22px; margin-bottom:24px; flex-wrap:wrap; }
.ve-login-actions button[type=submit] { width:auto; min-width:140px; }
.ve-login-forgot { display:inline-flex; align-items:center; font-size:14px; line-height:1.4; color:var(--ve-muted); text-decoration:none; transition:color .18s; }
.ve-login-forgot:hover { color:var(--ve-accent); text-decoration:underline; }

@media(max-width:540px) {
  .ve-login-actions { flex-direction:column; align-items:stretch; gap:12px; }
  .ve-login-actions button[type=submit] { width:100%; }
  .ve-login-actions .ve-login-forgot { justify-content:center; text-align:center; padding:6px 0; }
  .ve-action-item { flex-direction:column; align-items:stretch; gap:12px; padding:16px; }
  .ve-action-controls { flex-direction:column; width:100%; }
  .ve-action-controls form, .ve-action-controls button, .ve-action-controls a { width:100%; }
  .ve-request-actions { flex-direction:column; align-items:stretch; }
  .ve-request-actions a, .ve-request-actions button { width:100%; }
  .ve-ui .ve-range-row { grid-template-columns:1fr; gap:6px; padding:12px; }
  .ve-range-row input { grid-column:1; }
  /* iOS Safari auto-zoom prevention: keep input font-size >= 16px */
}

.ve-link-button {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  color: var(--ve-accent);
  font: inherit;
  font-size: inherit;
  text-decoration: underline;
  cursor: pointer;
  display: inline;
}
.ve-link-button:hover {
  color: var(--ve-accent-hover, var(--ve-accent));
}
.ve-link-button:focus-visible {
  outline: 2px solid var(--ve-accent);
  outline-offset: 2px;
  border-radius: 4px;
}

html.vet-dark .vet-nz-logo img {
  filter: brightness(0) invert(1);
  opacity: 0.88;
}
