/* Sahanaz Pay — T01 Design Foundation 0.3.0
   Layered over app.css: does not change payment / database / callback behavior.
   Based on information architecture inspiration, not copied assets, from ezfp.cn. */
:root {
  --bg: #f6f8fc;
  --ink: #14243b;
  --muted: #68778c;
  --line: #e5eaf2;
  --primary: #2269ed;
  --dark: #0f203a;
  --surface: #ffffff;
  --soft: #edf4ff;
  --good: #157b62;
  --warn: #a46a15;
  --bad: #bd4558;
  --ui-elevation: 0 12px 36px rgba(29, 54, 93, .045);
  --ui-bg-elevated: #fff;
  --ui-control-bg: #fff;
  --ui-text-soft: #7b899a;
  --ui-selection-bg: #e9f2ff;
  --ui-border-strong: #d1dae8;
  --ui-brand-tint: #1760db;
  --ui-muted-surface: #f6f9fd;
  --ui-gradient: linear-gradient(135deg,#2277ec,#1651c7);
  color-scheme: light;
}

html,body {min-width: 320px;}
body {background:var(--bg); color:var(--ink); font-size:14px; line-height:1.65;}
::selection {background:var(--ui-selection-bg);color:var(--ink)}
:where(a,button,input,select,textarea,summary):focus-visible {outline:3px solid #7eaeff;outline-offset:3px;}
a {color:var(--primary)}
a:hover {color:var(--ui-brand-tint)}
a[aria-current="page"] {color:var(--primary)}
h1,h2,h3 {color:var(--ink)}
p,small,.muted {color:var(--muted)}
code {color:var(--ui-brand-tint)}
button,.button {transition:background-color .18s,color .18s,border-color .18s,transform .18s}


.button.secondary,button.outline,.outline {background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;}
.button.secondary:hover,button.outline:hover,.outline:hover{background:var(--ui-selection-bg)!important;color:var(--ink)!important}
.skip-link {position:fixed;top:-100px;left:16px;z-index:10000;background:var(--surface);padding:10px 18px;border-radius:8px;box-shadow:var(--ui-elevation)}
.skip-link:focus {top:8px}
.shell {max-width:1440px;padding:0 clamp(16px,4vw,56px);}
/* Public navigation */
.global-header {height:auto;min-height:82px;border-bottom:1px solid var(--line);padding:0;background:transparent;position:relative;z-index:12;}
.header-inner {display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;min-height:82px;}
.brand {color:var(--ink);font-size:21px;letter-spacing:-.8px;line-height:1}
.brand:hover {color:var(--ink)}
.brand-name {display:inline-block;white-space:nowrap;}
.brand-name strong {color:var(--primary);font-weight:800;}
.brand-mark {background:var(--ui-gradient);border-radius:12px;width:38px;height:38px;color:white;flex:0 0 38px;font-size:23px;letter-spacing:-1px;box-shadow:none;}
.global-nav {gap:clamp(14px,2.2vw,30px);margin-left:auto;}
.global-nav a{color:var(--muted);font-size:13px;font-weight:650;}
.global-nav a:hover,.global-nav a[aria-current="page"]{color:var(--primary);}
.global-nav .nav-admin {background:var(--dark);color:#fff;padding:11px 16px;}
.global-nav .nav-admin:hover {color:#fff;background:#24518d;}
.header-actions {display:flex;align-items:center;gap:12px;}



.mobile-nav {display:none;}
.global-footer {display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(220px,1fr);align-items:center;gap:28px;margin-top:78px;padding:34px 0 46px;border-top:1px solid var(--line);font-size:12px;}
.global-footer strong {color:var(--ink);font-weight:800;}
.global-footer p {margin:4px 0;color:var(--muted)}
.global-footer .footer-links {display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px;}
.global-footer .footer-links a {color:var(--muted);font-weight:650}
.global-footer .footer-links a:hover {color:var(--primary)}
.global-footer .footer-note{text-align:right;}
/* Shared surfaces and content cards */
.card,.surface,.panel,.feature-card,.channel-public,.doc-section,.docs-nav,.metric,.stats>div {background:var(--surface);border:1px solid var(--line);box-shadow:var(--ui-elevation)}
.card,.surface,.panel {border-radius:16px;}
.feature-card,.channel-public,.doc-section {border-radius:18px;}
.eyebrow,.section-label{color:var(--ui-brand-tint)}
.home-hero {padding-top:clamp(56px,7vw,114px);padding-bottom:clamp(52px,7vw,92px);}
.home-copy h1 {font-size:clamp(41px,4.6vw,70px);line-height:1.17;letter-spacing:-2.2px;}
.home-copy h1 em {color:var(--ui-brand-tint)}
.home-copy > p {color:var(--muted);font-size:16px;line-height:1.85;max-width:520px;}
.hero-tag {border:1px solid var(--line);background:var(--surface);color:var(--muted);}
.trust-note {color:var(--muted)}
.hero-visual {box-shadow:0 25px 65px rgba(15,45,103,.14);}
.mock-head {background:#10213d;color:#b4c3de;}
.mock-card {background:#fff;color:#26374c;}
.mock-card .mock-tag,.mock-card .mock-row,.mock-foot {color:#6c7c95;}
.mock-row b {color:#426caa;}
.feature-card {transition:transform .2s,border-color .2s,box-shadow .2s;}
.feature-card:hover {transform:translateY(-3px);box-shadow:0 17px 44px rgba(29,54,93,.09);border-color:var(--ui-border-strong);}
.feature-card p,.public-heading p,.channel-pub-info p,.doc-section p {color:var(--muted)}
.feature-icon{background:var(--soft);color:var(--ui-brand-tint)}
.notice-strip {background:var(--ui-muted-surface);color:var(--ink);border-color:var(--line);}
.disclaimer-bar {color:var(--muted);border-color:var(--line);background:var(--ui-muted-surface);}
.pill {background:var(--ui-muted-surface);color:var(--muted)}
/* Dashboard shell — no reliance on :has() */
.layout-portal .shell {max-width: none;padding:0 clamp(16px,2.6vw,44px);}
.layout-portal main {min-height:100vh;}
.app-layout {display:grid;grid-template-columns:245px minmax(0,1fr);gap:clamp(20px,2.6vw,38px);align-items:stretch;min-height:100vh;padding:22px 0;}
.sidebar{margin:0;padding:23px 14px;top:22px;height:calc(100vh - 44px);min-height:0;overflow-y:auto;overscroll-behavior:contain;background:#10213b;border:1px solid rgba(255,255,255,.045);border-radius:17px;box-shadow:0 15px 43px rgba(17,36,63,.11);}
.sidebar-top{padding:2px 10px 31px;}
.sidebar-top strong {color:#f5f9ff;font-size:15px;}
.sidebar-top small{color:#9dadc5;}
.sidebar-desktop {display:block;}
.sidebar-mobile {display:none;}
.sidebar-disclosure>summary {display:none;}
.nav-label {color:#889cb8;}
.side-links a {min-height:43px;font-size:13px;color:#b5c2d7;}
.side-links a.selected {background:rgba(70,135,232,.23);color:#fff;position:relative;}
.side-links a.selected:before {content:"";position:absolute;left:2px;top:13px;bottom:13px;width:3px;border-radius:4px;background:#65a8ff;}
.side-links a:hover {background:rgba(255,255,255,.075);color:#fff;}
.side-ico {color:#91b7ed;}
.side-footer {margin-top:38px;padding-top:16px;}


.side-footer>a,.side-footer .plain-btn {color:#b9c9dd;}
.side-footer .plain-btn:hover {color:white;}
.workspace {padding:22px 0 46px;min-width:0;}
.portal-heading{margin:2px 0 28px;}
.portal-heading h1{font-size:clamp(26px,2.8vw,34px);}
.portal-heading p {max-width:610px;color:var(--muted);}
.header-status {border-color:var(--line);background:var(--surface);color:var(--muted)}
.metric span,.stats small{color:var(--muted)}
.metric strong,.stats b {color:var(--ink)}
.detail-line {border-color:var(--line);}
.detail-line>span:first-child {color:var(--muted)}
.tablewrap {border:1px solid var(--line);border-radius:10px;}
table{font-size:12px} th {background:var(--ui-muted-surface);color:var(--muted)} td{color:var(--ink)}th,td {border-bottom:1px solid var(--line)}
input:not([type=checkbox]),textarea,select {background:var(--ui-control-bg);color:var(--ink);border:1px solid var(--ui-border-strong);}
input::placeholder,textarea::placeholder {color:var(--ui-text-soft);opacity:1}
label {color:var(--muted)}
.secret-display {background:var(--ui-muted-surface);border-color:var(--line);color:var(--ink)}
.inline-alert {background:var(--soft);color:var(--ink);border-color:var(--line)}
.docs-nav {top:18px;}
.docs-nav a{color:var(--muted);}
.docs-nav a:hover {background:var(--soft);color:var(--primary)}
.doc-section h2{border-color:var(--line)}
.doc-section pre {background:#101f35;color:#edf2fa}
.doc-section pre code {color:#edf2fa}
.login-intro p {color:var(--muted)}
/* Dark theme overrides for legacy inline presentation not yet migrated to tokens. */




















.error-view {margin:clamp(70px,10vw,130px) auto;text-align:center;max-width:610px;min-height:43vh;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.error-digit {font-weight:850;font-size:clamp(80px,13vw,160px);letter-spacing:-9px;line-height:1;color:var(--ui-brand-tint);opacity:.26}
.error-view h1{font-size:clamp(25px,3vw,40px)}
.error-view p {max-width:450px;color:var(--muted)}
.error-view .hero-actions{justify-content:center}
/* Keyboard/motion and mobile navigation */
@media (max-width:1050px) {
  .global-nav {gap:12px}
  .global-nav a {font-size:12px}
  .app-layout{grid-template-columns:212px minmax(0,1fr);gap:22px}
}
@media (max-width:820px) {
  .global-header {min-height:72px}
  .header-inner {min-height:72px;}
  .global-nav {display:none}
  .mobile-nav {display:block;position:relative}
  .mobile-nav summary {list-style:none;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 12px;min-height:40px;border-radius:10px;font-size:12px;font-weight:720;cursor:pointer;}
  .mobile-nav summary::-webkit-details-marker {display:none}
  .mobile-nav[open] summary {border-color:var(--primary)}
  .mobile-nav nav {position:absolute;z-index:50;right:0;top:calc(100% + 10px);width:min(280px,calc(100vw - 32px));display:flex;flex-direction:column;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 16px 40px rgba(10,33,66,.15);}
  .mobile-nav nav a{padding:12px 14px;min-height:42px;display:flex;align-items:center;color:var(--ink);border-radius:8px;}
  .mobile-nav nav a:hover,.mobile-nav nav a[aria-current=page] {background:var(--soft);color:var(--primary)}
  .mobile-nav nav .nav-admin {color:var(--primary);font-weight:700}
  .global-footer {grid-template-columns:1fr 1fr;align-items:start;margin-top:50px;}
  .global-footer .footer-note {grid-column:1/-1;text-align:left;}
  .app-layout {display:block;padding:14px 0;min-height:100vh}
  .sidebar {position:static;height:auto;min-height:0;overflow:visible;padding:14px 14px 10px;margin-bottom:15px;}
  .sidebar-top {padding:0 4px 11px}
  .sidebar-desktop {display:none;}
  .sidebar-mobile {display:block;}
  .sidebar-disclosure > summary {display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;background:rgba(255,255,255,.08);border-radius:9px;padding:10px 13px;color:#f5f8ff;font-size:12px;font-weight:700;}
  .sidebar-disclosure>summary::-webkit-details-marker {display:none}
  .sidebar-current {margin-left:auto;font-size:11px;font-weight:500;color:#b9c8df;}
  .sidebar-disclosure>.side-content {display:none;}
  .sidebar-disclosure[open]>.side-content {display:block;padding-top:14px;}
  .side-links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:5px;}
  .side-links a {white-space:normal;min-width:0;}
  .side-footer {display:block;margin-top:14px;}
  .workspace {padding:8px 0 35px;}
  .portal-heading {align-items:flex-start;}
}
@media (max-width:600px) {
  .shell {padding:0 16px;}
  .brand {font-size:18px;gap:8px;}
  .brand-mark {width:34px;height:34px;flex-basis:34px;font-size:21px;border-radius:10px;}
  .header-inner{gap:10px;}
  .header-actions {gap:6px;}
  .global-footer {grid-template-columns:1fr;gap:12px;padding:25px 0 35px;}
  .global-footer .footer-note{grid-column:auto;}
  .home-hero {padding-top:42px;}
  .home-copy h1 {font-size:clamp(36px,9vw,48px)}
  .app-layout {padding-top:10px;}
  .metric-grid,.stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .error-view {margin:68px auto;}
  .error-digit {letter-spacing:-5px;}
}
@media (prefers-reduced-motion: reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
/* Explicit color fixes for legacy selectors with more-specific declarations. */
.brand > .brand-name {margin-left:0;color:var(--ink)}
.brand > .brand-name strong {color:var(--primary)}





/* Deployment preview status: never imply real payment availability. */
.preview-flag{margin:14px auto 8px;max-width:1200px;border:1px solid #f2d19c;border-radius:12px;padding:10px 14px;background:#fff9ed;color:#80530a;font-size:13px;line-height:1.55}
.preview-flag strong{font-weight:800}


/* Custom validation UI · first installed admin page feedback */
.form-field-error[data-for-validation] {display:block;margin-top:7px;font-size:11px;line-height:1.6;color:#d66b62;font-weight:700;}
input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true] {border-color:#dd7270!important;box-shadow:0 0 0 3px rgba(226,104,104,.12)!important;}
.form-toast{position:fixed;z-index:9999;top:22px;right:24px;max-width:min(350px,calc(100vw - 34px));
  padding:13px 17px;border-radius:12px;border:1px solid #ecb8b3;background:var(--surface);color:var(--ink);
  box-shadow:0 14px 40px rgba(22,32,54,.17);font-size:13px;font-weight:690;line-height:1.5;
  border-left:4px solid #d36863;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .18s,transform .18s;}
.form-toast.is-visible{opacity:1;transform:translateY(0)}
@media (max-width:600px){.form-toast{top:12px;right:12px}}
