:root{--bg:#f4f1ea;--surface:#fbf9f4;--surface-hi:#ede9df;--border:#e2ddd1;--border-strong:#cfc8b8;--text-hi:#0f141c;--text-mid:#565e6b;--text-low:#7c828c;--accent-indigo:#4f46e5;--accent-teal:#0d9488;--accent-amber:#d97706;--danger:#dc2626;--on-accent:#fbf9f4;--on-amber:#241502;--settled:#16a34a;--locked-bg:#0f141c;--locked-surface:#161d29;--locked-border:#2a3342;--locked-text-hi:#f4f1ea;--locked-text-mid:#a9b2c0;--locked-ring:#fbbf24;--dot-pending:#7c828c;--dot-enrolled:#4f46e5;--dot-active:#0d9488;--dot-grace:#d97706;--dot-overdue:#dc2626;--dot-suspended:#565e6b;--dot-settled:#16a34a;--dot-released:#4f46e5;--radius:10px;--radius-pill:999px;--nav-h:52px;--focus-ring:2px solid var(--accent-indigo);--dur-xs:80ms;--dur-sm:150ms;--dur-interact:180ms;--dur-md:240ms;--dur-lg:400ms;--dur-xl:600ms;--dur-settle:900ms;--ease-entrance:cubic-bezier(0,0,0.2,1);--ease-exit:cubic-bezier(0.4,0,1,1);--ease-standard:cubic-bezier(0.4,0,0.2,1);--ease-emphasized:cubic-bezier(0.2,0.8,0.2,1);--loop-breathe:3s;--ink:var(--text-hi);--paper:var(--surface);--muted:var(--text-mid);--owner:var(--accent-indigo);--retailer:var(--accent-teal);--customer:var(--accent-amber);--ok:var(--accent-teal);--warn:var(--accent-amber);--info:var(--accent-indigo)}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;color:var(--text-hi);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent-indigo);text-decoration:none}a:hover{text-decoration:underline}.choice:focus-within,.nav a:focus-visible,.quick-card:focus-visible,.step-link:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:4px}.tabnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.skip-link{position:absolute;left:16px;top:-48px;z-index:20;padding:10px 16px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text-hi);font-weight:600;transition:top var(--dur-sm) var(--ease-standard)}.skip-link:focus-visible{top:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.card.locked,.locked-surface{background:var(--locked-surface);border-color:var(--locked-border);color:var(--locked-text-hi)}.locked-ring{position:relative}.locked-ring:after{content:"";position:absolute;inset:-4px;border-radius:inherit;border:2px solid var(--locked-ring);opacity:.5;pointer-events:none;animation:breathe var(--loop-breathe) var(--ease-standard) infinite}@keyframes breathe{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.04);opacity:.2}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-hi);border-radius:var(--radius);font-size:13.5px;font-weight:600;cursor:pointer;transition:transform var(--dur-interact) var(--ease-standard),background var(--dur-interact) var(--ease-standard),border-color var(--dur-interact) var(--ease-standard)}.btn:hover{background:var(--surface-hi)}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent-indigo);border-color:var(--accent-indigo);color:var(--on-accent)}.btn.primary:hover{background:#4338ca}.btn.teal{background:var(--accent-teal);border-color:var(--accent-teal);color:var(--on-accent)}.btn.teal:hover{background:#0b7d73}.btn.amber{background:var(--accent-amber);border-color:var(--accent-amber);color:var(--on-amber)}.btn.amber:hover{background:#b45309;color:var(--on-accent)}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.btn.danger:hover{background:#b91c1c}.btn.sm{min-height:34px;padding:0 12px;font-size:12.5px}.input{width:100%;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius);padding:0 12px;font-size:15px;background:var(--surface);color:var(--text-hi)}.input:focus,.input:focus-visible{outline:var(--focus-ring);outline-offset:0;border-color:var(--accent-indigo)}.input.error{border-color:var(--danger)}.input-error{color:var(--danger);font-size:13px;margin-top:6px}.label{display:block;font-size:12.5px;color:var(--text-mid);margin:14px 0 5px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);color:var(--text-hi);border-radius:var(--radius-pill);padding:3px 10px 3px 8px;font-size:12px;font-weight:600;line-height:1.4}.chip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--chip-dot,var(--text-low));flex:0 0 auto}.chip.ok{--chip-dot:var(--dot-active)}.chip.danger{--chip-dot:var(--dot-overdue)}.chip.warn{--chip-dot:var(--dot-grace)}.chip.info{--chip-dot:var(--dot-enrolled)}.chip.muted{--chip-dot:var(--dot-suspended);color:var(--text-mid)}.chip.settled{--chip-dot:var(--dot-settled)}.chip.action{border-color:var(--border);background:var(--surface);color:var(--text-mid)}.chip.action:before{display:none}.chip.action.selected{color:var(--accent-indigo);border-color:var(--accent-indigo)}table{width:100%;border-collapse:collapse}thead th{position:-webkit-sticky;position:sticky;top:var(--nav-h);background:var(--surface);text-align:left;font-size:12px;color:var(--text-mid);font-weight:600;border-bottom:1px solid var(--border-strong);z-index:5}tbody td,thead th{height:44px;padding:0 14px}tbody td{border-bottom:1px solid var(--border);font-size:13.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tbody tr{transition:background var(--dur-interact) var(--ease-standard)}.table-actions tbody tr:hover{background:var(--surface-hi)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:48px 16px;color:var(--text-mid)}.empty .empty-icon{color:var(--text-low)}.empty p{margin:0;font-size:14.5px}td.empty-cell{height:auto;padding:40px 12px;text-align:center;color:var(--text-mid);font-feature-settings:normal;font-variant-numeric:normal}.skeleton-cell{display:block;height:13px;border-radius:4px;background:var(--surface-hi);animation:pulse 1.4s var(--ease-standard) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.nav{display:flex;gap:2px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border-strong);position:-webkit-sticky;position:sticky;top:0;z-index:10}.nav a{display:inline-flex;align-items:center;gap:7px;min-height:var(--nav-h);padding:14px 12px;color:var(--text-mid);font-weight:600;font-size:13.5px;border-bottom:2px solid transparent}.nav a:hover{color:var(--text-hi);text-decoration:none}.nav a.active{color:var(--accent-indigo);border-bottom-color:var(--accent-indigo)}.nav a.brand{color:var(--text-hi);font-weight:700;font-size:15px;letter-spacing:-.01em;margin-right:4px}.nav a.brand img{display:block}.portal-logout{display:flex;align-items:center;gap:8px;margin-left:auto;flex:0 0 auto}.portal-logout [role=alert]{max-width:190px;color:var(--danger);font-size:12px}.nav-sep{width:1px;background:var(--border-strong);margin:12px 6px;align-self:stretch}.grid{display:grid;grid-gap:16px;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:900px){.grid.cols-3,.grid.cols-4{grid-template-columns:1fr 1fr}.grid.cols-2{grid-template-columns:1fr}}.stat{display:flex;align-items:center;gap:12px}.stat .icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--on-accent)}.stat .num{font-size:26px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat .cap{font-size:12.5px;color:var(--text-mid)}main.page{max-width:1120px;margin:0 auto;padding:32px 24px 88px}main.page:focus-visible{outline:none}h1.page-title{font-size:24px;font-weight:700;margin:4px 0 24px;display:flex;align-items:center;gap:10px;letter-spacing:-.01em;text-wrap:balance}.dash-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;animation:riseIn var(--dur-lg) var(--ease-entrance) both}.dash-title{font-size:34px;margin:0;color:var(--text-hi);letter-spacing:-.02em;line-height:1.15;text-wrap:balance}.dash-sub{color:var(--muted);margin:8px 0 0;font-size:15px;max-width:62ch}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:14px;padding:24px;background:var(--surface);animation:riseIn var(--dur-lg) var(--ease-entrance) both;transition:transform var(--dur-interact) var(--ease-standard),border-color var(--dur-interact) var(--ease-standard)}.stat-card:hover{transform:translateY(-2px);border-color:var(--border-strong)}.stat-icon{display:inline-flex;padding:10px;border-radius:10px;margin-bottom:14px;color:var(--on-accent)}.tone-indigo .stat-icon{background:#4F46E5}.tone-teal .stat-icon{background:#0D9488}.tone-danger .stat-icon{background:#DC2626}.tone-amber .stat-icon{background:#D97706;color:var(--on-amber)}.stat-num{font-size:32px;font-weight:800;color:var(--text-hi);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-label{color:var(--muted);font-weight:600}.stat-sheen{display:none}.dash-section{margin-top:40px;animation:riseIn var(--dur-lg) var(--ease-entrance) both}.dash-h2{font-size:17px;color:var(--text-hi);margin:0 0 16px}.step-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}@media (max-width:900px){.step-grid{grid-template-columns:repeat(2,1fr)}}.step-card{position:relative;border:1px solid var(--border);border-radius:14px;padding:24px 18px;background:var(--surface);animation:riseIn var(--dur-lg) var(--ease-entrance) both;transition:transform var(--dur-interact) var(--ease-standard),border-color var(--dur-interact) var(--ease-standard)}.step-card:hover{transform:translateY(-2px);border-color:var(--accent-teal)}.step-badge{position:absolute;top:16px;right:16px;width:26px;height:26px;border-radius:50%;background:#e6f4f1;font-weight:800;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center}.step-badge,.step-ic{color:var(--accent-teal)}.step-ic{margin-bottom:8px}.step-card h3{font-size:15px;margin:4px 0;color:var(--text-hi)}.step-card p{font-size:13px;color:var(--muted);margin:0 0 12px}.step-link{display:inline-flex;align-items:center;gap:4px;color:var(--accent-teal);font-size:13px;font-weight:700;text-decoration:none}.step-link:hover{text-decoration:underline}.quick-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}@media (max-width:900px){.quick-row{grid-template-columns:1fr}}.quick-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--border);border-radius:12px;padding:18px;background:var(--surface);color:var(--text-hi);text-decoration:none;transition:transform var(--dur-interact) var(--ease-standard),border-color var(--dur-interact) var(--ease-standard)}.quick-card:hover{transform:translateY(-2px);border-color:var(--accent-teal)}.quick-card svg{color:var(--accent-teal);flex-shrink:0;margin-top:2px}.quick-card span{font-size:13px;color:var(--muted)}.quick-card strong{display:block;color:var(--text-hi);font-size:14px;margin-bottom:2px}.dash-note{display:flex;align-items:center;gap:7px;margin:16px 0 0;font-size:13px;color:var(--text-mid);background:#e6f4f1;border:1px solid #cfe9e4;border-radius:10px;padding:12px 14px}.dash-note svg{color:var(--accent-teal)}.choice{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--border-strong);border-radius:10px;padding:12px;cursor:pointer;background:var(--surface)}.choice span{font-size:13px;color:var(--muted)}.choice strong{color:var(--text-hi);font-size:13.5px}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.login-main{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-main:before{content:"";position:fixed;inset:0 0 44% 0;background:var(--locked-bg);pointer-events:none;z-index:-1}.login-card{width:100%;max-width:384px;padding:32px}.dash-band{background:var(--locked-bg);border:1px solid var(--locked-border);border-radius:16px;padding:28px;margin-bottom:8px}.dash-band .dash-title{color:var(--locked-text-hi)}.dash-band .dash-sub{color:var(--locked-text-mid)}.dash-band .stat-grid{margin-top:24px}.dash-band .stat-card{background:var(--locked-surface);border-color:var(--locked-border)}.dash-band .stat-card:hover{border-color:var(--locked-text-mid)}.dash-band .stat-num{color:var(--locked-text-hi)}.dash-band .stat-label{color:var(--locked-text-mid)}h1.page-title.band-title{background:var(--locked-bg);color:var(--locked-text-hi);border:1px solid var(--locked-border);border-radius:14px;padding:16px 20px;margin:4px 0 24px}h1.page-title.band-title svg{color:var(--accent-teal)}main.console-page{background:var(--surface);border:1px solid var(--border);border-radius:16px}main.console-page .card,main.console-page thead th{background:var(--bg)}main.console-page .btn{background:var(--surface)}.qr-band{background:var(--locked-bg);border:1px solid var(--locked-border);border-radius:16px;padding:24px}.qr-band .card{background:var(--locked-surface);border-color:var(--locked-border)}.qr-band .label{color:var(--locked-text-mid)}.qr-band .input{background:var(--locked-surface);border-color:var(--locked-border);color:var(--locked-text-hi)}.qr-band .input:focus{border-color:var(--accent-indigo);outline-color:var(--accent-indigo)}.qr-band .btn{background:var(--locked-surface);border-color:var(--locked-border);color:var(--locked-text-hi)}.qr-band .btn:hover{background:#1d2533}.qr-band ol,.qr-band p{color:var(--locked-text-mid)}.qr-band .btn.primary{background:var(--accent-indigo);border-color:var(--accent-indigo);color:var(--on-accent)}.qr-band .btn.primary:hover{background:#4338ca}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.dash-hero,.dash-section,.locked-ring:after,.skeleton-cell,.stat-card,.step-card{animation:none!important}}@font-face{font-family:Inter;src:url(/fonts/Inter.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/InterSemiBold.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/InterBold.woff2) format("woff2");font-weight:700 900;font-display:swap}@font-face{font-family:Bricolage;src:url(/fonts/BricolageGrotesque.woff2) format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Bricolage;src:url(/fonts/BricolageGrotesqueExtraBold.woff2) format("woff2");font-weight:800 900;font-display:swap}.portal-shell[data-role=owner],:root{--bg:#C9CCFF;--surface:#E4E1FF;--surface-end:#D3D0FF;--surface-hi:#D3D0FF;--text-hi:#17153B;--text-mid:#3F3D63;--text-low:#5D587F;--border:#4F46E533;--border-strong:#4F46E566;--accent:#4F46E5;--accent-end:#818CF8;--deep:#2A2378;--deep-end:#4C1D95;--ground:linear-gradient(135deg,#C9CCFF,#DCCFFF 48%,#F5C8EE);--radius:20px;--locked-bg:#2A2378;--locked-surface:#4C1D95;--locked-text-hi:#FFF4E0;--locked-text-mid:#E4E1FF}.portal-shell[data-role=retailer]{--bg:#A6ECDD;--surface:#D5F5EC;--surface-end:#BDEFE2;--surface-hi:#BDEFE2;--text-hi:#06302C;--text-mid:#2B5753;--text-low:#386963;--border:#0B7A7033;--border-strong:#0B7A7066;--accent:#0B7A70;--accent-end:#2DD4BF;--deep:#0B4F4A;--deep-end:#0C4A6E;--ground:linear-gradient(135deg,#A6ECDD,#B4E6F6 48%,#D6F3B4);--locked-bg:#0B4F4A;--locked-surface:#0C4A6E;--locked-text-mid:#C3E8DE}body{min-height:100dvh;background:var(--ground);font-family:Inter,system-ui,sans-serif}.portal-shell{min-height:100dvh;background:radial-gradient(ellipse at 90% 0,#818CF866,transparent 32%),var(--ground)}.portal-shell[data-role=retailer]{background:radial-gradient(ellipse at 90% 0,#0B7A7044,transparent 32%),radial-gradient(ellipse at 0 100%,#FBBF2444,transparent 32%),var(--ground)}.card,.quick-card,.stat-card,.step-card{background:linear-gradient(135deg,var(--surface),var(--surface-end));border-radius:20px;border-color:var(--border);box-shadow:0 9px 20px #17153B16;padding:20px}.stat .num,.stat-num,h1,h2,h3{font-family:Bricolage,Inter,sans-serif}.dash-title,h1.page-title{font-size:32px;line-height:1.15;letter-spacing:-.8px}.stat-num{font-size:44px;line-height:1.15}.stat-grid{gap:12px}.stat-label{font-size:13px}.btn{min-height:52px;border-radius:14px;font-family:Inter,sans-serif;font-size:15px;padding:12px 16px;background:linear-gradient(135deg,var(--surface),var(--surface-end));box-shadow:0 6px 12px #17153B16;transition:transform .15s}.btn:active{transform:scale(.97)}.btn.sm{min-height:48px;font-size:13px}.btn.primary,.btn.teal{color:#FFF4E0;border-color:transparent;animation:brandFlow 6s ease infinite}.btn.primary,.btn.primary:hover,.btn.teal,.btn.teal:hover{background:linear-gradient(115deg,var(--accent),var(--accent-end),var(--accent));background-size:200% 200%}.btn.amber{background:linear-gradient(115deg,#D97706,#FBBF24);color:#3B1A06}.btn.amber,.btn.danger{border-color:transparent}.btn.danger{background:linear-gradient(115deg,#C81E1E,#AD202E);color:#FFF4E0}.input{min-height:52px;padding:12px 16px;border-radius:14px;font-family:Inter,system-ui,sans-serif;background:linear-gradient(135deg,var(--surface),var(--surface-end));border-color:var(--border-strong)}.label{font-size:13px;font-weight:600;margin:12px 0 6px}.chip{padding:6px 10px;background:var(--surface);border-color:var(--border)}.nav{top:16px;margin:0 16px;padding:6px;gap:4px;border:0;border-radius:24px;background:linear-gradient(135deg,var(--deep),var(--deep-end));box-shadow:0 10px 24px #17153B33;overflow-x:auto;scrollbar-width:thin}.nav a{color:#E4E1FF;border:0;border-radius:18px;min-height:54px;white-space:nowrap;padding:12px}.nav a.brand,.nav a:hover{color:#FFF4E0}.nav a:hover{background:#FFFFFF12}.nav a.active{color:#FFF4E0;background:linear-gradient(135deg,var(--accent-end),var(--accent))}.nav-sep{background:#FFFFFF33}main.page{padding-top:48px}.card.locked,.dash-band,.locked-surface{background:linear-gradient(135deg,var(--deep),var(--deep-end));border-color:transparent;border-radius:20px;box-shadow:0 10px 24px #17153B22}.dash-band .stat-card{background:#FFFFFF16;border:1px solid #ffffff22}h1.page-title.band-title{background:linear-gradient(135deg,var(--deep),var(--deep-end));border-radius:20px}.login-main:before{display:none}.login-card{max-width:420px;padding:28px}.login-card .input{background:#E4E1FF}.login-card h1{font-family:Bricolage,sans-serif}.choice,.dash-note{background:var(--surface);border-color:var(--border);border-radius:14px}@keyframes brandFlow{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@media(max-width:600px){.nav{top:12px;margin:0 12px}.nav a.brand span{display:none}main.page{padding:36px 20px 32px}.card,.stat-card{padding:16px}.dash-band{padding:20px}.stat-num{font-size:36px}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.portal-shell,.portal-shell[data-role]{--pp-bg:#f4f5fb;--pp-surface:#ffffff;--pp-surface-2:#f8f9fd;--pp-line:#e3e6f0;--pp-line-strong:#cfd4e3;--pp-ink:#141a2e;--pp-ink-2:#4a5270;--pp-ink-3:#7a8199;--pp-accent:var(--accent,#4f46e5);--pp-accent-soft:color-mix(in srgb,var(--pp-accent) 10%,#fff);--pp-shadow:0 1px 2px rgb(20 26 46/.05),0 8px 24px -12px rgb(20 26 46/.14);--pp-radius:16px;--pp-radius-sm:10px;--text-hi:var(--pp-ink);--text-mid:var(--pp-ink-2);--text-low:var(--pp-ink-3);--muted:var(--pp-ink-3);--surface:var(--pp-surface);--surface-hi:var(--pp-surface-2);--border:var(--pp-line);--border-strong:var(--pp-line-strong);min-height:100dvh;color:var(--pp-ink);background:radial-gradient(1200px 520px at 100% -10%,color-mix(in srgb,var(--pp-accent) 12%,transparent),transparent 60%),radial-gradient(900px 480px at -10% 110%,color-mix(in srgb,var(--pp-accent) 7%,transparent),transparent 60%),var(--pp-bg)}.portal-shell[data-role=retailer]{--pp-accent:#0b7a70}.portal-shell .nav{position:-webkit-sticky;position:sticky;top:0;z-index:20;margin:0;border-radius:0;padding:10px 16px;gap:4px;align-items:center;background:rgb(255 255 255/.86);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--pp-line);box-shadow:none;overflow-x:auto;scrollbar-width:none}.portal-shell .nav::-webkit-scrollbar{display:none}.portal-shell .nav a{color:var(--pp-ink-2);min-height:40px;padding:8px 12px;border-radius:10px;font-weight:600;font-size:13.5px;white-space:nowrap;border:0;background:transparent;transition:background-color .18s,color .18s}.portal-shell .nav a svg{color:var(--pp-ink-3);transition:color .18s}.portal-shell .nav a:hover{background:var(--pp-surface-2);color:var(--pp-ink)}.portal-shell .nav a.active{background:var(--pp-accent-soft);color:var(--pp-accent)}.portal-shell .nav a.active svg{color:var(--pp-accent)}.portal-shell .nav a.brand{color:var(--pp-ink);font-size:16px;font-weight:800;margin-right:6px;background:none}.portal-shell .nav-sep{background:var(--pp-line);margin:8px 4px}.portal-shell .portal-logout .btn{min-height:38px;padding:8px 14px;font-size:13px}@media (min-width:1180px){.portal-shell[data-role=distributor],.portal-shell[data-role=owner]{display:grid;grid-template-columns:252px minmax(0,1fr);align-items:start}.portal-shell[data-role=distributor]>:not(.nav),.portal-shell[data-role=owner]>:not(.nav){grid-column:2;min-width:0}.portal-shell[data-role=distributor] .nav,.portal-shell[data-role=owner] .nav{grid-column:1;grid-row:1/span 50;flex-direction:column;align-items:stretch;height:100dvh;overflow-y:auto;padding:20px 14px;gap:2px;border-bottom:0;border-right:1px solid var(--pp-line);background:rgb(255 255 255/.9)}.portal-shell[data-role=distributor] .nav a,.portal-shell[data-role=owner] .nav a{min-height:42px;padding:10px 12px;gap:10px}.portal-shell[data-role=distributor] .nav a.brand,.portal-shell[data-role=owner] .nav a.brand{margin:0 0 14px;padding:6px 10px 14px;border-bottom:1px solid var(--pp-line);border-radius:0}.portal-shell[data-role=distributor] .nav-sep,.portal-shell[data-role=owner] .nav-sep{display:none}.portal-shell[data-role=distributor] .portal-logout,.portal-shell[data-role=owner] .portal-logout{margin:auto 0 0;padding-top:14px;border-top:1px solid var(--pp-line)}.portal-shell[data-role=distributor] .portal-logout .btn,.portal-shell[data-role=owner] .portal-logout .btn{width:100%}}.portal-shell main.page{max-width:1200px;margin:0 auto;padding:32px clamp(16px,3vw,40px) 72px}.portal-shell .dash-title,.portal-shell h1.page-title{font-size:clamp(24px,2.4vw,30px);line-height:1.2;letter-spacing:-.02em;color:var(--pp-ink);margin:0 0 6px}.portal-shell h1.page-title.band-title{background:none;color:var(--pp-ink);padding:0;border:0;border-radius:0;box-shadow:none}.portal-shell h1.page-title.band-title svg{color:var(--pp-accent)}.portal-shell .dash-hero{margin-bottom:24px;align-items:flex-end;gap:16px;flex-wrap:wrap}.portal-shell .dash-sub{color:var(--pp-ink-2);font-size:14.5px;line-height:1.6;margin-top:6px}.portal-shell h2{font-size:17px;line-height:1.35;letter-spacing:-.01em}.portal-shell h2,.portal-shell h3{color:var(--pp-ink);display:flex;align-items:center;gap:8px}.portal-shell h3{font-size:14.5px;line-height:1.4;margin:0 0 4px}.portal-shell h2 svg,.portal-shell h3 svg{color:var(--pp-accent)}.portal-shell .card,.portal-shell .quick-card,.portal-shell .stat-card,.portal-shell .step-card{background:var(--pp-surface);border:1px solid var(--pp-line);border-radius:var(--pp-radius);box-shadow:var(--pp-shadow);padding:clamp(16px,2vw,24px)}.portal-shell .card+.card{margin-top:16px}.portal-shell .grid{gap:16px}.portal-shell .choice,.portal-shell .dash-note{background:var(--pp-surface-2);border-color:var(--pp-line);border-radius:var(--pp-radius-sm)}.portal-shell .stat-grid{gap:16px}.portal-shell .stat-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-column-gap:14px;column-gap:14px;align-items:center;padding:18px 20px}.portal-shell .stat-card .stat-icon{grid-row:1/span 2;margin:0;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;padding:0}.portal-shell .stat-num{font-size:28px;line-height:1.1;font-weight:800;letter-spacing:-.02em}.portal-shell .stat-label{font-size:12.5px;color:var(--pp-ink-3);font-weight:600;letter-spacing:.01em}.stat-icon.tone-indigo,.tone-indigo .stat-icon{background:#eef0ff;color:#4f46e5}.stat-icon.tone-teal,.tone-teal .stat-icon{background:#e3f6f3;color:#0d9488}.stat-icon.tone-amber,.tone-amber .stat-icon{background:#fff3df;color:#b45309}.stat-icon.tone-danger,.tone-danger .stat-icon{background:#fdecec;color:#dc2626}.portal-shell .dash-band{background:var(--pp-surface);border:1px solid var(--pp-line);box-shadow:var(--pp-shadow);border-radius:var(--pp-radius)}.portal-shell .dash-band .stat-card{background:var(--pp-surface-2);border:1px solid var(--pp-line);box-shadow:none}.portal-shell .label{font-size:12.5px;font-weight:600;color:var(--pp-ink-2);margin:14px 0 6px}.portal-shell .input{min-height:42px;padding:9px 12px;border-radius:var(--pp-radius-sm);background:var(--pp-surface);border:1px solid var(--pp-line-strong);color:var(--pp-ink);font-size:14.5px;transition:border-color .15s,box-shadow .15s}.portal-shell .input:hover{border-color:color-mix(in srgb,var(--pp-accent) 35%,var(--pp-line-strong))}.portal-shell .input:focus,.portal-shell .input:focus-visible{outline:none;border-color:var(--pp-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--pp-accent) 16%,transparent)}.portal-shell .input:disabled{background:var(--pp-surface-2);color:var(--pp-ink-3)}.portal-shell select.input{padding-right:32px}.portal-shell .btn{min-height:42px;padding:9px 16px;border-radius:var(--pp-radius-sm);font-size:14px;font-weight:600;gap:8px;background:var(--pp-surface);color:var(--pp-ink);border:1px solid var(--pp-line-strong);box-shadow:0 1px 2px rgb(20 26 46/.06);animation:none;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .1s}.portal-shell .btn:hover{background:var(--pp-surface-2);border-color:color-mix(in srgb,var(--pp-accent) 30%,var(--pp-line-strong))}.portal-shell .btn:active{transform:scale(.98)}.portal-shell .btn.primary,.portal-shell .btn.teal{background:var(--pp-accent);color:#fff;border-color:transparent;box-shadow:0 6px 16px -8px var(--pp-accent)}.portal-shell .btn.teal{background:#0d9488;box-shadow:0 6px 16px -8px #0d9488}.portal-shell .btn.primary:hover{background:color-mix(in srgb,var(--pp-accent) 88%,#000)}.portal-shell .btn.teal:hover{background:#0b7d73}.portal-shell .btn.danger{background:#dc2626;color:#fff;border-color:transparent}.portal-shell .btn.amber{background:#f59e0b;color:#2b1702;border-color:transparent}.portal-shell .btn:disabled{opacity:.5;box-shadow:none}.portal-shell .btn.sm{min-height:32px;padding:5px 10px;font-size:12.5px;border-radius:8px;gap:6px}.portal-shell .btn.sm svg{width:14px;height:14px}.portal-shell table{font-size:13.5px;border-collapse:separate;border-spacing:0}.portal-shell thead th{background:var(--pp-surface-2);color:var(--pp-ink-3);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:10px 14px;border-bottom:1px solid var(--pp-line);text-align:left;white-space:nowrap}.portal-shell thead th:first-child{border-top-left-radius:var(--pp-radius-sm)}.portal-shell thead th:last-child{border-top-right-radius:var(--pp-radius-sm)}.portal-shell tbody td{padding:12px 14px;border-bottom:1px solid var(--pp-line);vertical-align:middle;color:var(--pp-ink)}.portal-shell tbody tr:last-child td{border-bottom:0}.portal-shell tbody tr{transition:background-color .12s}.portal-shell tbody tr:hover{background:color-mix(in srgb,var(--pp-accent) 4%,transparent)}.portal-shell .muted,.portal-shell tbody td .muted{color:var(--pp-ink-3)}.portal-shell td .btn+.btn{margin-left:6px}.portal-shell .card:has(>div>table),.portal-shell .card:has(>table){overflow-x:auto}.portal-shell .card thead th{position:static}.portal-shell h1:focus,.portal-shell h1:focus-visible{outline:none}.portal-shell .link-button{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--pp-accent);cursor:pointer;text-align:left}.portal-shell .link-button:hover{text-decoration:underline;text-underline-offset:3px}.portal-shell tr[aria-selected=true]{background:var(--pp-accent-soft)}.portal-shell .chip{padding:3px 10px;font-size:12px;font-weight:600;border-radius:999px;background:var(--pp-surface-2);border:1px solid var(--pp-line);color:var(--pp-ink-2)}.portal-shell .chip.ok{background:#e7f7f1;border-color:#bfe8d9;color:#0b7a5c}.portal-shell .chip.danger{background:#fdecec;border-color:#f7c9c9;color:#b42318}.portal-shell .chip.warn{background:#fff4e2;border-color:#f6d9a8;color:#9a5b07}.portal-shell .chip.info{background:#eef0ff;border-color:#d4d8ff;color:#4338ca}.portal-shell [role=alert].card{border-color:#f7c9c9;background:#fff7f7;color:#b42318}.portal-shell [role=status].card{border-color:#bfe8d9;background:#f2fbf7;color:#0b7a5c}@media (max-width:700px){.portal-shell main.page{padding:20px 14px 56px}.portal-shell .stat-grid{grid-template-columns:1fr 1fr;gap:10px}.portal-shell .stat-card{padding:14px;column-gap:10px}.portal-shell .stat-card .stat-icon{width:36px;height:36px}.portal-shell .stat-num{font-size:22px}.portal-shell .card{overflow-x:auto}.portal-shell .card table{min-width:560px}.portal-shell .nav a.brand span{display:none}.portal-shell .dash-hero{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.portal-shell *{transition:none!important}}