@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spline Sans Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/spline-sans-mono-latin-ext-wght-normal-Dh0aNLWd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spline Sans Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/spline-sans-mono-latin-wght-normal-DlaB5ohX.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--green-900: #0B3D2C;--green-800: #0F5132;--green-700: #15633E;--green-600: #1C7A4E;--green-100: #DCEFE5;--green-050: #EFF7F2;--warm-800: #A0571A;--warm-700: #B86B22;--warm-600: #C5772B;--warm-500: #D98E3D;--warm-100: #F8E8D2;--warm-050: #FCF4E8;--ink-900: #16191C;--ink-700: #3A4047;--ink-500: #697079;--ink-300: #AEB4BB;--line-200: #DEE2E6;--surface-100: #F2F4F6;--surface-050: #F8FAFB;--surface-000: #FAFAFA;--white: #FFFFFF;--success: #15633E;--error: #A8322F;--warning: #A0571A;--info: #2B6CB0;--block: #D7DCE1;--block-strong: #C2C8CF;--skeleton: #E6EAEE;--label: #697079;--ui: "Hanken Grotesk Variable", system-ui, sans-serif;--mono: "Spline Sans Mono Variable", ui-monospace, monospace;--display: "Bricolage Grotesque Variable", "Hanken Grotesk Variable", system-ui, sans-serif;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 36px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.2;--leading-normal: 1.45;--leading-relaxed: 1.6;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(16,25,28,.05), 0 1px 1px rgba(16,25,28,.03);--shadow-md: 0 2px 4px rgba(16,25,28,.05), 0 8px 20px rgba(16,25,28,.08);--shadow-lg: 0 4px 8px rgba(16,25,28,.05), 0 18px 40px rgba(16,25,28,.12);--shadow-sheet: 0 -8px 28px rgba(16,25,28,.16);--mobile-max: 480px;--content-max: 1100px;--tap-min: 44px;--gutter: 16px;--bp-tablet: 768px;--bp-desktop: 1024px;--focus: 0 0 0 3px rgba(21,99,62,.35)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--ui);color:var(--ink-900);background:var(--surface-100);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}h1,h2,h3,.hero-title,.stats-title,.card .title{font-family:var(--display);letter-spacing:-.02em;line-height:var(--leading-tight)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}.app-shell{max-width:var(--content-max);margin:0 auto;min-height:100dvh;background:var(--surface-050);display:flex;flex-direction:column;box-shadow:var(--shadow-md)}.appbar{position:sticky;top:var(--space-3);z-index:40;margin:var(--space-3) var(--gutter) var(--space-2);padding:var(--space-2) var(--space-4);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;border-radius:var(--radius-xl);background:color-mix(in srgb,var(--surface-000) 72%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border:1px solid color-mix(in srgb,var(--ink-900) 8%,transparent);box-shadow:var(--shadow-md)}.brand{display:flex;align-items:center;min-height:44px}.brand-logo{display:none;width:auto}.brand-icon{display:block;height:34px;width:auto}.appbar .spacer{margin-left:auto}.langtoggle{display:flex;border:1px solid var(--line-200);border-radius:var(--radius-pill);overflow:hidden}.langtoggle button{font-family:var(--mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ink-500);background:var(--white);border:none;padding:var(--space-1) var(--space-3);cursor:pointer;min-height:32px}.langtoggle button.on{background:var(--green-700);color:var(--white)}.submit-cta{font-size:var(--text-sm);font-weight:var(--weight-semibold);background:var(--warm-800);color:var(--white);border:none;border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);min-height:44px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center}.appnav{order:5;flex:1 1 100%;display:flex;align-items:center;gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid color-mix(in srgb,var(--ink-900) 7%,transparent)}.navlink{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink-700);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);min-height:38px;display:inline-flex;align-items:center;white-space:nowrap}.navlink:hover{background:color-mix(in srgb,var(--green-700) 8%,transparent);color:var(--green-700)}.navlink.on{color:var(--green-700);font-weight:var(--weight-semibold);background:color-mix(in srgb,var(--green-700) 10%,transparent)}@media(min-width:768px){.appnav{order:0;flex:0 1 auto;margin-top:0;padding-top:0;border-top:none;overflow:visible}}.subbar{padding:var(--space-2) var(--gutter) var(--space-3)}.subbar h1{font-size:var(--text-xl);letter-spacing:-.01em;margin-bottom:var(--space-3)}.chiprow{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1)}.chip{font-size:var(--text-sm);border:1px solid var(--line-200);background:var(--white);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-3);color:var(--ink-700);display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap;min-height:44px;cursor:pointer}.chip.on{background:var(--green-700);color:var(--white);border-color:var(--green-700)}.chip .caret{font-size:var(--text-xs);opacity:.7}.chip .badge{font-family:var(--mono);font-size:var(--text-xs);background:var(--warm-500);color:var(--ink-900);border-radius:var(--radius-pill);min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.list{padding:var(--space-4) var(--gutter);display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-3);flex:1;align-content:start}.list>*{animation:reveal .4s cubic-bezier(.2,.7,.2,1) backwards}.list>*:nth-child(2){animation-delay:.05s}.list>*:nth-child(3){animation-delay:.1s}.list>*:nth-child(4){animation-delay:.15s}.list>*:nth-child(n+5){animation-delay:.2s}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.list>*,.card .img,.hero-img,.pulse,.skeleton-card .img,.sk-line{animation:none!important}}.card{background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;text-align:left;display:block;width:100%;padding:0;box-shadow:var(--shadow-sm);transition:box-shadow .22s ease,transform .22s cubic-bezier(.2,.7,.2,1)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.card:active{transform:translateY(-1px) scale(.997)}.card .img{aspect-ratio:16 / 10;background:var(--surface-100);background-size:cover;background-position:center;display:flex;align-items:flex-end;animation:imgfade .5s ease both}@keyframes imgfade{0%{opacity:0}to{opacity:1}}.card .img.ph{background-image:repeating-linear-gradient(45deg,var(--block),var(--block) 7px,var(--block-strong) 7px,var(--block-strong) 14px);align-items:center;justify-content:center}.card .img.ph span{font-family:var(--mono);font-size:var(--text-xs);color:var(--label);text-transform:uppercase;letter-spacing:.05em}.card .meta{padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.card .dt{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--warm-800)}.card .title{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:var(--leading-tight)}.card .sub{font-size:var(--text-sm);color:var(--ink-500);display:flex;align-items:center;gap:var(--space-2)}.tagrow{display:flex;gap:var(--space-2);flex-wrap:wrap}.tag{font-size:var(--text-xs);font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;padding:3px 7px;border-radius:var(--radius-sm)}.tag.type{background:var(--green-050);color:var(--green-700)}.tag.city{background:var(--surface-100);color:var(--ink-500)}.stats-tile{grid-column:1 / -1;background:linear-gradient(160deg,var(--green-800) 0%,var(--green-700) 60%,color-mix(in srgb,var(--green-700) 78%,var(--warm-700) 22%) 100%);border:1px solid color-mix(in srgb,var(--white) 14%,transparent);border-radius:var(--radius-xl);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-md)}.stats-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.stats-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--white)}.stats-live{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--mono);font-size:var(--text-xs);color:color-mix(in srgb,var(--white) 80%,transparent);text-transform:uppercase;letter-spacing:.05em}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:var(--space-2)}.stat{display:flex;flex-direction:column;gap:4px;background:color-mix(in srgb,var(--white) 12%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--white) 22%,transparent);border-top:3px solid var(--line-200);border-radius:var(--radius-md);padding:var(--space-3)}.stat-icon{width:18px;height:18px;color:color-mix(in srgb,var(--white) 88%,transparent)}.stat-v{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--white);font-variant-numeric:tabular-nums;line-height:1.1}.stat-l{font-size:var(--text-xs);color:color-mix(in srgb,var(--white) 78%,transparent)}.stat.tone-green{border-top-color:var(--green-600)}.stat.tone-warm{border-top-color:var(--warm-500)}.pulse{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--warm-500);animation:livepulse 1.8s ease-out infinite}@keyframes livepulse{0%{box-shadow:0 0 color-mix(in srgb,var(--warm-500) 60%,transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb,var(--warm-500) 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--warm-500) 0%,transparent)}}.hero-tile{grid-column:1 / -1;position:relative;display:block;width:100%;padding:0;text-align:left;cursor:pointer;background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .22s ease,transform .22s cubic-bezier(.2,.7,.2,1)}.hero-tile:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.hero-tile:active{transform:translateY(-1px) scale(.998)}.hero-img{aspect-ratio:16 / 7;min-height:200px;background:var(--surface-100);background-size:cover;background-position:center;animation:imgfade .5s ease both}.hero-img.ph{background-image:repeating-linear-gradient(45deg,var(--block),var(--block) 7px,var(--block-strong) 7px,var(--block-strong) 14px)}.hero-badge{position:absolute;top:var(--space-3);left:var(--space-3);background:var(--warm-800);color:var(--white);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm)}.hero-meta{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.hero-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:var(--leading-tight)}.hero-sub{font-size:var(--text-base);color:var(--ink-500)}.hero-cta{margin-left:auto;color:var(--green-700);font-weight:var(--weight-semibold);font-size:var(--text-sm);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-base);font-weight:var(--weight-semibold);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);min-height:44px;border:1px solid transparent;cursor:pointer;text-align:center;line-height:var(--leading-tight)}.btn.primary{background:var(--green-700);color:var(--white)}.btn.supply{background:var(--warm-800);color:var(--white)}.btn.tonal{background:var(--warm-100);color:var(--warm-800);border-color:var(--warm-600)}.btn.ghost{background:var(--white);border-color:var(--line-200);color:var(--ink-700)}.btn.danger{background:var(--error);color:var(--white)}.btn.block{display:flex;width:100%}.btn[disabled]{opacity:.5;cursor:not-allowed}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#10191c73;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:var(--mobile-max);background:var(--surface-050);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-sheet);padding:var(--space-4) var(--gutter) var(--space-6);display:flex;flex-direction:column;gap:var(--space-5);max-height:88dvh;overflow-y:auto}.sheet .grab{width:40px;height:4px;border-radius:var(--radius-pill);background:var(--line-200);align-self:center}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet-head h2{font-size:var(--text-xl)}.sheet-head .reset{font-size:var(--text-sm);color:var(--green-700);background:none;border:none;cursor:pointer;min-height:44px;font-weight:var(--weight-semibold)}.filter-group{display:flex;flex-direction:column;gap:var(--space-3)}.filter-group .label{font-family:var(--mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500)}.opt-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.opt{font-size:var(--text-sm);border:1px solid var(--line-200);background:var(--white);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--ink-700);min-height:44px;display:inline-flex;align-items:center;gap:var(--space-1);cursor:pointer}.opt.on{background:var(--green-700);color:var(--white);border-color:var(--green-700)}.opt .sub{font-size:var(--text-xs);opacity:.7;font-family:var(--mono)}.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-4);padding:var(--space-10) var(--space-6)}.center .ico{width:56px;height:56px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl)}.center .ico.neutral{background:var(--surface-100);color:var(--ink-500);border:1px dashed var(--ink-300)}.center .ico.warm{background:var(--warm-100);color:var(--warm-800);border:1px solid var(--warm-600)}.center .ico.err{background:var(--surface-100);color:var(--error);border:1px solid var(--error)}.center h2{font-size:var(--text-xl);color:var(--ink-900);letter-spacing:-.01em}.center p{font-size:var(--text-base);color:var(--ink-500);line-height:var(--leading-normal);max-width:36ch}.center .acts{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:320px}.linkish{font-family:var(--mono);font-size:var(--text-sm);color:var(--green-700);text-decoration:underline;background:none;border:none;cursor:pointer;min-height:44px}.ctablock{width:100%;border:1px solid var(--line-200);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);text-align:left}.ctablock.supply{background:var(--warm-050);border-color:var(--warm-100)}.ctablock .cbh{font-size:var(--text-base);font-weight:var(--weight-semibold)}.ctablock.supply .cbh{color:var(--warm-800)}.consent{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--text-sm);color:var(--ink-700);line-height:var(--leading-normal)}.consent a{color:var(--green-700);text-decoration:underline}.regpick{background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);padding:var(--space-4);margin:var(--space-4) var(--gutter) 0;display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-sm)}.regpick .rh{font-size:var(--text-lg);font-weight:var(--weight-semibold);display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.regpick .opt-tag{font-family:var(--mono);font-size:var(--text-xs);color:var(--ink-500);font-weight:var(--weight-medium);background:var(--surface-100);padding:2px 7px;border-radius:var(--radius-sm)}.opt-group{display:flex;flex-direction:column;gap:var(--space-2)}.filter-subgroup{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.opt-country,.filter-subgroup .sublabel{font-family:var(--mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500)}.skeleton-card{background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);overflow:hidden}.skeleton-card .img{height:128px;background:var(--skeleton)}.skeleton-card .meta{padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.sk-line{height:12px;border-radius:var(--radius-sm);background:var(--skeleton)}.sk-line.t{height:18px}.sk-line.w90{width:90%}.sk-line.w70{width:70%}.sk-line.w50{width:50%}.sk-line.w40{width:40%}.skeleton-card .img,.sk-line{background:linear-gradient(100deg,var(--skeleton) 30%,color-mix(in srgb,var(--skeleton) 55%,var(--white)) 50%,var(--skeleton) 70%);background-size:220% 100%;animation:shimmer 1.5s linear infinite}@keyframes shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}.detail{flex:1;display:flex;flex-direction:column}.detail .hero{height:200px;background:var(--surface-100);background-size:cover;background-position:center}.detail .hero.ph{background-image:repeating-linear-gradient(45deg,var(--block),var(--block) 7px,var(--block-strong) 7px,var(--block-strong) 14px)}.detail .body{padding:var(--space-5) var(--gutter);display:flex;flex-direction:column;gap:var(--space-4)}.detail h1{font-size:var(--text-2xl);letter-spacing:-.02em;line-height:var(--leading-tight)}.detail .fields{display:flex;flex-direction:column;gap:var(--space-3)}.detail .field{display:flex;flex-direction:column;gap:2px}.detail .field .k{font-family:var(--mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500)}.detail .field .v{font-size:var(--text-base);color:var(--ink-900)}.detail .field .v.missing{color:var(--ink-300);font-style:italic}.detail .desc{font-size:var(--text-base);color:var(--ink-700);line-height:var(--leading-relaxed)}.detail .actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.detail .secondary-row{display:flex;gap:var(--space-3)}.detail .secondary-row .btn{flex:1}.detail .report{align-self:center;font-family:var(--mono);font-size:var(--text-sm);color:var(--ink-500);text-decoration:underline;background:none;border:none;cursor:pointer;min-height:44px;margin-top:var(--space-2)}.backbar{padding:var(--space-2) var(--gutter)}.backbar button{font-size:var(--text-sm);color:var(--ink-700);background:none;border:none;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-medium)}.toast{position:fixed;left:50%;bottom:var(--space-8);transform:translate(-50%);z-index:80;background:var(--ink-900);color:var(--white);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);box-shadow:var(--shadow-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-main{flex:1;display:flex;flex-direction:column;min-height:0}.footer{background:var(--surface-050);border-top:1px solid var(--line-200);padding:var(--space-8) var(--gutter) var(--space-10);display:flex;flex-direction:column;align-items:center;gap:var(--space-4);text-align:center}.footer-logo{height:80px;width:auto}.footer-links{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;justify-content:center;font-size:var(--text-sm)}.footer-links a{color:var(--ink-700);font-weight:var(--weight-medium);min-height:44px;display:inline-flex;align-items:center;padding:0 var(--space-1)}.footer-links a:hover{color:var(--green-700);text-decoration:underline}.footer-links span{color:var(--ink-300)}.footer-note{font-size:var(--text-xs);color:var(--ink-500)}.formwrap{flex:1;display:flex;flex-direction:column}.eventform{padding:var(--space-4) var(--gutter) var(--space-10);display:flex;flex-direction:column;gap:var(--space-4);max-width:560px;margin:0 auto;width:100%}.eventform h1{font-size:var(--text-2xl);letter-spacing:-.01em}.form-intro{font-size:var(--text-base);color:var(--ink-500);margin-top:calc(var(--space-2) * -1)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field>span{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink-700);display:flex;gap:var(--space-2);align-items:center}.field>span em{font-style:normal;font-family:var(--mono);font-size:var(--text-xs);color:var(--ink-500);font-weight:var(--weight-regular)}.field input,.field select,.field textarea{border:1px solid var(--line-200);border-radius:var(--radius-md);background:var(--white);padding:var(--space-3);font-size:var(--text-base);font-family:var(--ui);color:var(--ink-900);min-height:44px;width:100%}.field textarea{min-height:84px;resize:vertical}.field.err input,.field.err select{border-color:var(--error);background:color-mix(in srgb,var(--error) 5%,var(--white))}.field .errmsg{font-size:var(--text-xs);color:var(--error)}.field-row{display:flex;gap:var(--space-3)}.field-row .field{flex:1;min-width:0}.form-error{font-size:var(--text-sm);color:var(--error);font-weight:var(--weight-medium)}.form-ok{font-size:var(--text-sm);color:var(--ink-900);font-weight:var(--weight-medium)}.team-panel{max-width:760px;margin:var(--space-4) auto var(--space-10);width:100%;padding:0 var(--gutter);display:flex;flex-direction:column;gap:var(--space-4)}.team-panel h2{font-size:var(--text-lg)}.team-hint{font-size:var(--text-sm);color:var(--ink-500)}.team-add{display:flex;flex-direction:column;gap:var(--space-3);background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);padding:var(--space-4)}.team-add h3{font-size:var(--text-base)}.org-col{max-width:600px;width:100%;margin:0 auto;padding:var(--space-6) var(--gutter) var(--space-10);display:flex;flex-direction:column;gap:var(--space-4)}.org-col>.admin-head,.org-col>.admin-queue,.org-col>.admin-empty,.org-col .eventform{max-width:none;margin:0;padding:0;width:100%}.org-col .admin-head{padding-bottom:0}.org-tabs{display:flex;gap:var(--space-2);flex-wrap:wrap}.org-landing h1{font-size:var(--text-3xl)}.org-landing .org-lead{font-size:var(--text-base);color:var(--ink-700);line-height:var(--leading-normal)}.org-benefits{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-3) 0}.org-benefits li{font-size:var(--text-sm);color:var(--ink-700)}.org-status{font-size:var(--text-sm);border-radius:var(--radius-md);padding:var(--space-3);font-weight:var(--weight-medium)}.org-status.ok{background:var(--green-050);color:var(--green-800)}.org-status.pending{background:var(--warm-050);color:var(--warm-800)}.org-eventform{border:1px solid var(--line-200);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--surface-050)}.org-gatehint{font-size:var(--text-sm);color:var(--ink-500)}.org-danger{color:var(--error);align-self:flex-start;margin-top:var(--space-4)}.status-badge{font-family:var(--mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:var(--radius-sm);margin-left:var(--space-2)}.status-badge.draft{background:var(--warm-100);color:var(--warm-800)}.status-badge.published{background:var(--green-100);color:var(--green-800)}.status-badge.archived{background:var(--surface-100);color:var(--ink-500)}.consent.err span{color:var(--error)}.center .ico.ok{background:var(--green-100);color:var(--green-700);border:1px solid var(--green-600)}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);max-width:760px;margin:0 auto;width:100%;padding:var(--space-5) var(--gutter) 0}.admin-head h1{font-size:var(--text-2xl);letter-spacing:-.01em}.admin-count{max-width:760px;margin:var(--space-2) auto 0;width:100%;padding:0 var(--gutter);color:var(--ink-500);font-size:var(--text-sm)}.admin-empty{max-width:760px;margin:var(--space-10) auto;width:100%;padding:0 var(--gutter);color:var(--ink-500);text-align:center}.admin-queue{list-style:none;max-width:760px;margin:var(--space-4) auto var(--space-10);width:100%;padding:0 var(--gutter);display:flex;flex-direction:column;gap:var(--space-3)}.admin-row{background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;gap:var(--space-4);align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.admin-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.admin-rowtitle{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.admin-sub{font-size:var(--text-sm);color:var(--ink-500)}.admin-src{font-size:var(--text-sm);color:var(--green-700);text-decoration:underline;word-break:break-all}.admin-acts{display:flex;gap:var(--space-2);flex-shrink:0;flex-wrap:wrap}.admin-tabs{display:flex;gap:var(--space-2);max-width:760px;margin:var(--space-3) auto 0;width:100%;padding:0 var(--gutter);flex-wrap:wrap}.admin-tab{font-size:var(--text-sm);font-weight:var(--weight-semibold);border:1px solid var(--line-200);background:var(--white);color:var(--ink-500);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);min-height:40px;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2)}.admin-tab.on{background:var(--green-700);color:var(--white);border-color:var(--green-700)}.admin-tab .n{font-family:var(--mono);font-size:var(--text-xs);opacity:.85}.dup-badge{font-family:var(--mono);font-size:var(--text-xs);background:color-mix(in srgb,var(--error) 12%,var(--white));color:var(--error);border:1px solid var(--error);padding:1px 7px;border-radius:var(--radius-pill);margin-left:var(--space-2)}.dup-hint{font-size:var(--text-xs);color:var(--error)}.link-badge{font-family:var(--mono);font-size:var(--text-xs);padding:1px 7px;border-radius:var(--radius-pill);margin-left:var(--space-2)}.link-badge.ok{background:var(--green-050);color:var(--green-700);border:1px solid var(--green-100)}.link-badge.bad{background:color-mix(in srgb,var(--error) 12%,var(--white));color:var(--error);border:1px solid var(--error)}.admin-pastewrap{max-width:760px;margin:var(--space-4) auto 0;width:100%;padding:0 var(--gutter)}.paste{background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg)}.paste>summary{padding:var(--space-3) var(--space-4);font-weight:var(--weight-semibold);cursor:pointer;font-size:var(--text-sm);color:var(--green-800)}.paste-body{padding:0 var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.paste-body textarea{border:1px solid var(--line-200);border-radius:var(--radius-md);padding:var(--space-3);font-family:var(--ui);font-size:var(--text-sm);min-height:64px;resize:vertical}.paste-controls{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.flyer-btn{cursor:pointer}.flyer-btn.disabled{opacity:.5;pointer-events:none}.flyer-note{font-size:var(--text-xs);color:var(--ink-500);line-height:var(--leading-normal)}.paste-detected{font-size:var(--text-sm);color:var(--ink-500);font-family:var(--mono)}.cand{display:flex;gap:var(--space-3);align-items:flex-start;border:1px solid var(--line-200);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface-050)}.cand.invalid{border-color:var(--warm-600);background:var(--warm-050)}.cand-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);flex:1;min-width:0}.cand-grid input,.cand-grid select{border:1px solid var(--line-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);min-height:40px;font-family:var(--ui);min-width:0;background:var(--white)}.cand-grid .cand-title{grid-column:1 / -1}.cand-side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);flex-shrink:0}.cand-remove{font-size:var(--text-xs);color:var(--error);background:none;border:none;cursor:pointer;text-decoration:underline;min-height:32px}.paste-footer{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-1)}.cand-hint{font-size:var(--text-xs);color:var(--warm-800)}.cost-panel{max-width:760px;margin:var(--space-4) auto var(--space-10);width:100%;padding:0 var(--gutter);display:flex;flex-direction:column;gap:var(--space-4)}.cost-panel h2{font-size:var(--text-lg)}.cost-grid{background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);overflow:hidden}.cost-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-top:1px solid var(--surface-100);font-size:var(--text-sm)}.cost-row:first-child{border-top:none}.cost-k{color:var(--ink-500)}.cost-v{font-family:var(--mono);font-weight:var(--weight-semibold);color:var(--ink-900)}.vision-row{display:flex;justify-content:space-between;align-items:center;background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.gate-badge{font-family:var(--mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--warm-800);background:var(--warm-100);border:1px solid var(--warm-600);padding:2px 8px;border-radius:var(--radius-pill)}.kill-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);background:var(--white);border:1.5px solid var(--error);border-radius:var(--radius-lg);padding:var(--space-4)}.kill-text strong{font-size:var(--text-base);color:var(--error)}.kill-text p{font-size:var(--text-sm);color:var(--ink-500);margin-top:2px}.kill-text .kill-auto{color:var(--warm-800);font-family:var(--mono);font-size:var(--text-xs);margin-top:var(--space-1)}.switch{flex:0 0 auto;width:52px;height:30px;border-radius:var(--radius-pill);background:var(--ink-300);border:none;position:relative;cursor:pointer;transition:.2s}.switch.on{background:var(--green-600)}.switch .knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--white);transition:.2s;box-shadow:var(--shadow-sm)}.switch.on .knob{transform:translate(22px)}.legal{flex:1;display:flex;flex-direction:column}.legal-body{max-width:720px;margin:0 auto;width:100%;padding:var(--space-2) var(--gutter) var(--space-12);display:flex;flex-direction:column;gap:var(--space-4)}.legal-draft{background:var(--warm-050);border:1px solid var(--warm-100);border-left:3px solid var(--warm-700);color:var(--warm-800);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);line-height:var(--leading-normal)}.legal-body h1{font-size:var(--text-2xl);letter-spacing:-.01em}.legal-intro{color:var(--ink-500)}.legal-body section{display:flex;flex-direction:column;gap:var(--space-2)}.legal-body h2{font-size:var(--text-lg);margin-top:var(--space-3)}.legal-body p{font-size:var(--text-base);color:var(--ink-700);line-height:var(--leading-relaxed)}.legal-updated{font-size:var(--text-xs);color:var(--ink-500);margin-top:var(--space-4)}@media(min-width:768px){.appbar{padding:var(--space-2) var(--space-6)}.brand-icon{display:none}.brand-logo{display:block;height:36px}.subbar{padding:var(--space-5) var(--space-6) var(--space-4)}.subbar h1{font-size:var(--text-2xl)}.list{padding:var(--space-5) var(--space-6);gap:var(--space-4)}.backbar{padding:var(--space-3) var(--space-6)}.sheet-backdrop{align-items:center}.sheet{max-width:480px;border-radius:var(--radius-xl);max-height:84dvh;padding:var(--space-5) var(--space-6) var(--space-6)}.sheet .grab{display:none}.detail .hero{height:300px}.detail .body{max-width:760px;margin:0 auto;width:100%}.detail h1{font-size:var(--text-3xl)}.detail .actions{max-width:440px;align-self:center;width:100%}.center{max-width:640px;margin:0 auto}.regpick{margin:var(--space-5) var(--space-6) 0}}@media(min-width:1024px){.list{padding:var(--space-6) var(--space-8)}.subbar{padding:var(--space-6) var(--space-8) var(--space-4)}.appbar{padding:var(--space-2) var(--space-8)}.brand-logo{height:40px}.card{cursor:pointer}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}}
