:root {
  --portal-bg: #f1f2ef;
  --portal-surface: rgba(255,255,255,.64);
  --portal-border: rgba(22,24,22,.12);
  --portal-muted: #666b67;
}

.portal-page { min-width: 320px; color: #171817; background: radial-gradient(circle at 72% 7%,rgba(255,255,255,.96),transparent 29%), var(--portal-bg); }
.portal-page::before { content:""; position:fixed; z-index:1000; inset:0; pointer-events:none; opacity:.11; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E"); mix-blend-mode:multiply; }
.portal-header { position:fixed; z-index:100; top:16px; left:var(--page); right:var(--page); height:68px; padding:0 12px; display:flex; align-items:center; justify-content:space-between; gap:24px; border:1px solid rgba(255,255,255,.9); border-radius:24px; background:rgba(247,248,245,.7); box-shadow:0 18px 44px rgba(32,35,32,.08), inset 0 1px 0 rgba(255,255,255,.95); backdrop-filter:blur(24px) saturate(145%); -webkit-backdrop-filter:blur(24px) saturate(145%); }
.portal-header__back { padding:14px 17px; border:1px solid var(--portal-border); border-radius:15px; background:rgba(255,255,255,.58); font-size:12px; }
.portal-header__back:hover { background:#fff; }
.portal-header__back-short { display:none; }

.proof-main { padding:0 var(--page) 72px; }
.proof-hero { min-height:100dvh; padding:112px 0 46px; display:grid; grid-template-columns:minmax(0,.86fr) minmax(460px,1.14fr); gap:clamp(46px,7vw,120px); align-items:center; }
.proof-kicker { display:block; color:#747975; font-size:9px; letter-spacing:.16em; }
.proof-hero h1, .admin-login h1, .admin-toolbar h1 { margin:28px 0 0; font-size:clamp(68px,8vw,148px); line-height:.84; font-weight:330; letter-spacing:-.075em; text-transform:uppercase; }
.proof-hero__copy > p { max-width:520px; margin:32px 0 0; color:var(--portal-muted); font-size:clamp(15px,1.3vw,19px); line-height:1.65; }
.proof-hero__visual { position:relative; min-height:640px; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.94); border-radius:32px; background:#d9dcda; box-shadow:0 34px 80px rgba(28,31,28,.11); }
.proof-hero__visual img { width:100%; height:100%; object-fit:cover; object-position:58% center; }
.proof-hero__visual::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 58%,rgba(15,17,15,.52)); }
.proof-hero__visual figcaption { position:absolute; z-index:1; left:26px; right:26px; bottom:24px; display:flex; justify-content:space-between; align-items:end; gap:24px; color:#f6f7f4; }
.proof-hero__visual figcaption span, .proof-hero__visual figcaption strong { display:block; }
.proof-hero__visual figcaption span { font-size:9px; letter-spacing:.14em; text-transform:uppercase; opacity:.7; }
.proof-hero__visual figcaption strong { font-size:15px; font-weight:480; }

.proof-console { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr); border:1px solid rgba(255,255,255,.9); border-radius:32px; background:rgba(255,255,255,.38); box-shadow:0 34px 80px rgba(28,31,28,.08), inset 0 1px 0 white; overflow:hidden; }
.proof-console__form { padding:clamp(28px,4vw,64px); }
.proof-console__status { padding:clamp(28px,4vw,56px); border-left:1px solid var(--portal-border); background:rgba(225,228,225,.5); }
.proof-auth { min-height:148px; padding-bottom:32px; display:grid; grid-template-columns:1fr auto; gap:12px 24px; align-items:center; border-bottom:1px solid var(--portal-border); }
.proof-auth > div span, .submissions-heading > span, .proof-privacy span, .admin-toolbar > div > span, .admin-header__label { display:block; color:#737874; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.proof-auth > div strong { display:block; margin-top:12px; font-size:clamp(24px,2.3vw,38px); font-weight:380; letter-spacing:-.045em; }
.proof-auth > div p { max-width:520px; margin:9px 0 0; color:var(--portal-muted); font-size:12px; line-height:1.55; }
.proof-auth .portal-text-button { grid-column:2; justify-self:end; }
.receipt-form { margin-top:42px; }
.receipt-form fieldset { min-width:0; margin:0; padding:0; border:0; }
.receipt-form fieldset[disabled] { opacity:.42; }
.receipt-form legend { margin:0 0 28px; padding:0; font-size:clamp(28px,3vw,48px); font-weight:360; letter-spacing:-.055em; }
.portal-fields { display:grid; gap:14px; margin-top:14px; }
.portal-fields--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-fields--three { grid-template-columns:1.15fr .85fr .6fr; }
.portal-field { display:grid; gap:9px; color:#575c58; font-size:10px; letter-spacing:.05em; }
.portal-field > span:first-child { padding-left:3px; }
.portal-field input, .portal-field select, .admin-toolbar select { width:100%; min-height:54px; padding:0 15px; border:1px solid var(--portal-border); border-radius:15px; outline:0; color:#171817; background:rgba(255,255,255,.66); box-shadow:inset 0 1px 0 rgba(255,255,255,.84); font:inherit; font-size:13px; letter-spacing:0; }
.portal-field input:focus, .portal-field select:focus, .admin-toolbar select:focus { border-color:#171817; box-shadow:0 0 0 3px rgba(23,24,23,.09), inset 0 1px 0 white; }
.portal-field--campaign { margin-bottom:18px; }
.portal-field--campaign small { color:var(--portal-muted); font-size:10px; line-height:1.5; }
.portal-field input[type="file"] { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; }
.receipt-drop { min-height:156px; padding:26px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px dashed rgba(23,24,23,.25); border-radius:22px; background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.92),transparent 45%), rgba(234,236,233,.54); cursor:pointer; transition:background .25s,border-color .25s,transform .25s; }
.receipt-drop:hover, .receipt-drop.is-dragging { border-color:#171817; background:rgba(255,255,255,.78); transform:translateY(-2px); }
.receipt-drop strong { color:#171817; font-size:17px; font-weight:450; letter-spacing:-.025em; }
.receipt-drop small { margin-top:9px; color:var(--portal-muted); font-size:10px; letter-spacing:.02em; }
.portal-consent { margin-top:22px; display:grid; grid-template-columns:19px 1fr; gap:12px; align-items:start; color:#5e635f; font-size:11px; line-height:1.55; }
.portal-consent input { width:18px; height:18px; accent-color:#171817; }
.receipt-form__action { margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.receipt-form__action p { max-width:420px; margin:0; color:#6f746f; font-size:10px; line-height:1.55; }

.portal-button { min-height:52px; padding:0 19px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--portal-border); border-radius:15px; color:#171817; background:rgba(255,255,255,.66); cursor:pointer; font-size:12px; white-space:nowrap; transition:transform .22s,background .22s; }
.portal-button:hover { background:#fff; transform:translateY(-1px); }
.portal-button:active { transform:scale(.98); }
.portal-button:disabled { cursor:not-allowed; opacity:.46; transform:none; }
.portal-button--dark { color:#f5f6f3; background:#171817; border-color:#171817; }
.portal-button--dark:hover { background:#2a2c2a; }
.portal-text-button { padding:3px 0; border:0; color:#4e534f; background:transparent; cursor:pointer; font-size:10px; text-decoration:underline; text-underline-offset:3px; }
.submissions-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.proof-console__status h2 { margin:42px 0 38px; font-size:clamp(50px,5.2vw,92px); line-height:.86; font-weight:330; letter-spacing:-.07em; text-transform:uppercase; }
.submission-list { display:grid; gap:10px; }
.submission-empty { min-height:180px; padding:24px; display:flex; flex-direction:column; justify-content:flex-end; border:1px solid var(--portal-border); border-radius:22px; background:rgba(255,255,255,.42); }
.submission-empty strong { font-size:17px; font-weight:450; }
.submission-empty p { max-width:300px; margin:9px 0 0; color:var(--portal-muted); font-size:11px; line-height:1.55; }
.submission-card { padding:20px; border:1px solid var(--portal-border); border-radius:22px; background:rgba(255,255,255,.56); }
.submission-card__top { display:flex; justify-content:space-between; gap:18px; }
.submission-card__top span { font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.submission-card__top time { color:#737874; font-size:9px; }
.submission-card h3 { margin:24px 0 0; font-size:23px; font-weight:390; letter-spacing:-.04em; }
.submission-card p { margin:8px 0 0; color:var(--portal-muted); font-size:11px; line-height:1.5; }
.submission-card__reward { margin-top:22px; padding-top:17px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:1px solid var(--portal-border); }
.submission-card__reward strong { font-size:17px; font-weight:450; }
.submission-status--approved, .submission-status--claimed { color:#217047; }
.submission-status--rejected { color:#a33a3a; }
.proof-privacy { min-height:380px; padding:90px 0; display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center; }
.proof-privacy h2 { max-width:700px; margin:24px 0 0; font-size:clamp(52px,6vw,105px); line-height:.88; font-weight:330; letter-spacing:-.07em; text-transform:uppercase; }
.proof-privacy p { max-width:620px; margin:0; color:var(--portal-muted); font-size:15px; line-height:1.7; }

.admin-main { min-height:100dvh; padding:120px var(--page) 80px; }
.admin-login { width:min(700px,100%); margin:8vh auto 0; padding:clamp(30px,5vw,70px); border:1px solid rgba(255,255,255,.9); border-radius:32px; background:rgba(255,255,255,.55); box-shadow:0 34px 80px rgba(28,31,28,.09); }
.admin-login h1 { font-size:clamp(62px,7vw,112px); }
.admin-login .portal-field { margin-top:44px; }
.admin-login .portal-button { width:100%; margin-top:14px; }
.admin-login > p { margin:16px 0 0; color:var(--portal-muted); font-size:10px; text-align:center; }
.admin-workspace { width:min(1500px,100%); margin:0 auto; }
.admin-toolbar { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; padding-bottom:34px; border-bottom:1px solid var(--portal-border); }
.admin-toolbar h1 { margin-top:18px; font-size:clamp(56px,6vw,104px); }
.admin-toolbar__actions { display:flex; align-items:flex-end; gap:10px; }
.admin-toolbar__actions label { display:grid; gap:7px; color:#707571; font-size:9px; }
.admin-toolbar select { min-width:150px; }
.admin-reserve { margin-top:22px; display:grid; grid-template-columns:.9fr .72fr 1.08fr; overflow:hidden; border:1px solid rgba(255,255,255,.9); border-radius:28px; background:rgba(255,255,255,.48); box-shadow:inset 0 1px 0 white; }
.admin-reserve > div { min-width:0; padding:clamp(24px,3vw,42px); }
.admin-reserve > div + div { border-left:1px solid var(--portal-border); }
.admin-reserve__identity > span, .admin-reserve__balance > span { color:#737874; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.admin-reserve__identity h2 { margin:16px 0 0; font-size:clamp(38px,4vw,66px); line-height:.9; font-weight:360; letter-spacing:-.06em; }
.admin-reserve__identity p { max-width:460px; margin:22px 0 0; color:var(--portal-muted); font-size:11px; line-height:1.65; }
.admin-reserve__identity a { display:inline-block; margin-top:22px; color:#373b38; font-size:10px; text-decoration:underline; text-underline-offset:4px; }
.admin-reserve__balance { display:flex; flex-direction:column; justify-content:space-between; background:rgba(222,225,222,.44); }
.admin-reserve__balance strong { margin:34px 0; font-size:clamp(35px,3.8vw,62px); line-height:.92; font-weight:360; letter-spacing:-.06em; overflow-wrap:anywhere; }
.admin-reserve__balance code { color:#6b706c; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:9px; line-height:1.55; overflow-wrap:anywhere; }
.admin-reserve__funding { display:flex; flex-direction:column; justify-content:center; }
.admin-reserve__actions { margin-top:14px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.admin-reserve__funding > p { margin:18px 0 0; color:var(--portal-muted); font-size:10px; line-height:1.55; }
.admin-campaigns { margin-top:22px; padding:clamp(24px,3vw,42px); border:1px solid rgba(255,255,255,.9); border-radius:28px; background:rgba(255,255,255,.45); box-shadow:inset 0 1px 0 white; }
.admin-campaigns__heading { display:block; }
.admin-campaigns__heading span { color:#737874; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.admin-campaigns__heading h2 { margin:13px 0 0; font-size:clamp(38px,4vw,68px); font-weight:360; letter-spacing:-.06em; }
.admin-campaigns__heading p { max-width:650px; margin:18px 0 0; color:var(--portal-muted); font-size:12px; line-height:1.65; }
.admin-campaign-form { margin-top:30px; padding-top:26px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; border-top:1px solid var(--portal-border); }
.admin-campaign-form .portal-button { align-self:end; }
.admin-campaign-form > p { align-self:center; margin:0; color:var(--portal-muted); font-size:10px; line-height:1.5; }
.admin-campaign-list { margin-top:22px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.admin-campaign-card { min-height:180px; padding:20px; display:flex; flex-direction:column; border:1px solid var(--portal-border); border-radius:20px; background:rgba(255,255,255,.58); }
.admin-campaign-card__top { display:flex; justify-content:space-between; gap:16px; color:#737874; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.admin-campaign-card h3 { margin:24px 0 0; font-size:24px; font-weight:390; letter-spacing:-.04em; }
.admin-campaign-card p { margin:8px 0 0; color:var(--portal-muted); font-size:10px; line-height:1.55; }
.admin-campaign-card__actions { margin-top:auto; padding-top:20px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.admin-queue { margin-top:22px; display:grid; gap:14px; }
.admin-receipt { display:grid; grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr); overflow:hidden; border:1px solid rgba(255,255,255,.9); border-radius:28px; background:rgba(255,255,255,.52); box-shadow:0 20px 55px rgba(30,32,30,.06); }
.admin-receipt__visual { min-height:420px; display:grid; place-items:center; background:#dfe2df; }
.admin-receipt__visual img { width:100%; height:100%; max-height:540px; object-fit:contain; }
.admin-receipt__body { padding:clamp(24px,3vw,44px); }
.admin-receipt__head { display:flex; justify-content:space-between; gap:20px; }
.admin-receipt__head span { font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.admin-receipt__head time { color:#737874; font-size:9px; }
.admin-receipt h2 { margin:34px 0 8px; font-size:clamp(34px,3vw,56px); font-weight:370; letter-spacing:-.055em; }
.admin-receipt__wallet { color:#626763; font-size:10px; overflow-wrap:anywhere; }
.admin-receipt dl { margin:34px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid var(--portal-border); border-radius:18px; overflow:hidden; background:var(--portal-border); }
.admin-receipt dl div { min-height:82px; padding:15px; background:rgba(255,255,255,.74); }
.admin-receipt dt { color:#747975; font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.admin-receipt dd { margin:10px 0 0; font-size:13px; }
.admin-decision { margin-top:28px; padding-top:24px; display:grid; grid-template-columns:.45fr 1fr auto auto; gap:10px; align-items:end; border-top:1px solid var(--portal-border); }
.admin-decision .portal-field { min-width:0; }
.admin-decision .portal-button--reject { color:#8c2727; }
.admin-queue-empty { min-height:420px; display:grid; place-items:center; border:1px dashed var(--portal-border); border-radius:28px; color:#686d69; text-align:center; }
.admin-header__label { padding-right:12px; }

.toast { z-index:1200; }
.toast.is-visible { opacity:1; visibility:visible; transform:translate(-50%,0); }

@media (max-width: 1000px) {
  .proof-hero { grid-template-columns:1fr; padding-top:132px; }
  .proof-hero__visual { min-height:520px; }
  .proof-console { grid-template-columns:1fr; }
  .proof-console__status { border-left:0; border-top:1px solid var(--portal-border); }
  .proof-privacy { grid-template-columns:1fr; gap:40px; }
  .admin-toolbar { align-items:flex-start; flex-direction:column; }
  .admin-reserve { grid-template-columns:1fr 1fr; }
  .admin-reserve__identity { grid-column:1 / -1; }
  .admin-reserve__balance { border-left:0 !important; border-top:1px solid var(--portal-border); }
  .admin-reserve__funding { border-top:1px solid var(--portal-border); }
  .admin-campaign-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-campaign-list { grid-template-columns:1fr 1fr; }
  .admin-receipt { grid-template-columns:1fr; }
  .admin-receipt__visual { min-height:320px; }
}

@media (max-width: 680px) {
  .portal-header { top:10px; left:10px; right:10px; height:60px; border-radius:20px; }
  .portal-header__back { flex:0 0 auto; min-width:58px; padding:11px 12px; text-align:center; font-size:10px; }
  .portal-header__back-long { display:none; }
  .portal-header__back-short { display:inline; }
  .proof-main { padding-left:18px; padding-right:18px; }
  .proof-hero { min-height:auto; padding:124px 0 70px; gap:42px; }
  .proof-hero h1 { font-size:clamp(58px,17vw,82px); }
  .proof-hero__visual { min-height:420px; border-radius:24px; }
  .proof-hero__visual figcaption { align-items:flex-start; flex-direction:column; gap:7px; }
  .proof-console { border-radius:24px; }
  .proof-console__form, .proof-console__status { padding:24px 18px; }
  .proof-auth { grid-template-columns:1fr; }
  .proof-auth .portal-button { width:100%; }
  .proof-auth .portal-text-button { grid-column:1; justify-self:start; }
  .portal-fields--two, .portal-fields--three { grid-template-columns:1fr; }
  .receipt-form__action { align-items:flex-start; flex-direction:column; }
  .receipt-form__action .portal-button { width:100%; }
  .proof-privacy { min-height:0; padding:80px 0; }
  .admin-main { padding:110px 16px 60px; }
  .admin-login { padding:28px 18px; border-radius:24px; }
  .admin-login h1, .admin-toolbar h1 { font-size:clamp(52px,16vw,76px); }
  .admin-header__label { display:none; }
  .admin-toolbar__actions { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .admin-toolbar__actions label { grid-column:1 / -1; }
  .admin-toolbar select { width:100%; }
  .admin-reserve { grid-template-columns:1fr; border-radius:24px; }
  .admin-reserve__identity { grid-column:auto; }
  .admin-reserve > div + div { border-left:0; border-top:1px solid var(--portal-border); }
  .admin-reserve__actions { grid-template-columns:1fr; }
  .admin-campaigns { padding:24px 18px; border-radius:24px; }
  .admin-campaign-form, .admin-campaign-list { grid-template-columns:1fr; }
  .admin-receipt { border-radius:24px; }
  .admin-receipt dl { grid-template-columns:1fr 1fr; }
  .admin-decision { grid-template-columns:1fr; }
}

@media (prefers-reduced-transparency: reduce) {
  .portal-header, .proof-console, .admin-login, .admin-receipt { background:#f8f8f5; backdrop-filter:none; -webkit-backdrop-filter:none; }
}
