@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_4eeef7{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_4eeef7{--font-plex:"IBM Plex Sans","IBM Plex Sans Fallback"}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");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:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");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:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");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:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,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:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_ef516e{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_ef516e{--font-fraunces:"Fraunces","Fraunces Fallback"}:root{--bg:#eef2f0;--panel:#ffffff;--ink:#14201c;--muted:#5b6b64;--line:#d5ddd8;--sidebar:#0f1f1a;--sidebar-2:#163028;--accent:#1f7a5c;--accent-2:#c4a35a;--warn:#b7791f;--danger:#b42318;--ok:#0f766e;--shadow:0 10px 30px rgba(15,31,26,0.06);--radius:14px;--font:var(--font-plex),"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;--display:var(--font-fraunces),"Songti SC","Noto Serif SC",serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:radial-gradient(1200px 500px at 10% -10%,#d9ebe3 0,transparent 55%),radial-gradient(900px 400px at 100% 0,#efe6cf 0,transparent 50%),var(--bg);color:var(--ink);font-family:var(--font)}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:#e8f2ed;padding:22px 16px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 12px}.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#2a9b74,#185a45);color:#f4fff9;font-weight:700;letter-spacing:.02em}.brand-name{font-family:var(--display);font-size:1.05rem;font-weight:600}.brand-sub{font-size:.75rem;opacity:.65}.nav{display:flex;flex-direction:column;gap:4px}.nav-item{padding:10px 12px;border-radius:10px;color:rgba(232,242,237,.78);transition:background .15s ease,color .15s ease}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.nav-item.active{background:rgba(47,168,126,.22);color:#fff;box-shadow:inset 0 0 0 1px rgba(47,168,126,.35)}.sidebar-foot{margin-top:auto;padding:12px;border-top:1px solid rgba(255,255,255,.08);font-size:.78rem;opacity:.7}.ghost-btn{margin-top:8px;width:100%;border:1px solid rgba(255,255,255,.18);background:transparent;color:#e8f2ed;border-radius:8px;padding:8px;cursor:pointer}.ghost-btn:hover{background:rgba(255,255,255,.06)}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.72);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.top-title{font-family:var(--display);font-size:1.25rem;font-weight:600}.top-meta{color:var(--muted);font-size:.85rem;margin-top:2px}.top-actions{display:flex;align-items:center;gap:12px}.ws-switch{display:inline-flex;padding:4px;border-radius:999px;background:#e5ece8;border:1px solid var(--line)}.ws-btn{border:0;background:transparent;padding:8px 14px;border-radius:999px;cursor:pointer;color:var(--muted)}.ws-btn.active{background:var(--panel);color:var(--ink);box-shadow:var(--shadow);font-weight:600}.hint{font-size:.8rem;color:var(--muted)}.content{padding:24px 28px 40px;animation:fade-in .35s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:18px}.page-header h1{margin:0;font-family:var(--display);font-size:1.7rem;font-weight:600}.page-header p{margin:6px 0 0;color:var(--muted)}.grid-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.metric .label{color:var(--muted);font-size:.82rem}.metric .value{margin-top:8px;font-size:1.65rem;font-weight:650;font-variant-numeric:tabular-nums}.metric .sub{margin-top:4px;font-size:.78rem;color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.panel+.panel{margin-top:14px}.panel h2{margin:0 0 12px;font-size:1.05rem}.funnel{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.funnel-step{background:#f4f8f6;border-radius:12px;padding:12px 10px;text-align:center;border:1px solid var(--line)}.funnel-step .n{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.funnel-step .l{margin-top:4px;font-size:.72rem;color:var(--muted);line-height:1.3}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data td,table.data th{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.data th{color:var(--muted);font-weight:560;font-size:.8rem}table.data tr:hover td{background:#f7faf8}.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid transparent}.tone-ok{background:#e6f6f1;color:var(--ok);border-color:#b7e4d8}.tone-warn{background:#fff7e8;color:var(--warn);border-color:#f0d7a4}.tone-danger{background:#fef3f2;color:var(--danger);border-color:#f3c4bf}.tone-neutral{background:#eef2f0;color:var(--muted);border-color:var(--line)}.btn{border:0;border-radius:10px;padding:9px 14px;cursor:pointer;font-weight:600}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn-secondary{background:#e8efeb;color:var(--ink)}.btn-danger{background:#fce8e6;color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.linkish{color:var(--accent);font-weight:600}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}.evidence{display:flex;flex-direction:column;gap:10px}.evidence-item{padding:12px;border-radius:12px;background:#f4f8f6;border:1px solid var(--line)}.evidence-item strong{display:block;margin-bottom:4px}.match-card{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px;background:#fbfcfb}.match-card.selected{border-color:#7bc4a8;background:#eefaf5}.match-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.score{font-weight:700;color:var(--accent)}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 14px 16px;border-left:2px solid #cfe0d8}.timeline li:before{content:"";position:absolute;left:-5px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.timeline .t{font-size:.78rem;color:var(--muted)}.empty{padding:28px;text-align:center;color:var(--muted)}.story-tip{margin-bottom:16px;padding:12px 14px;border-radius:12px;background:linear-gradient(90deg,#e8f5ef,#f7f1e3);border:1px solid #d5e5dc;color:#2d4a3d;font-size:.9rem}.action-list{margin:0;padding-left:1.1rem;line-height:1.9}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-block;padding:4px 10px;border-radius:999px;background:#e8f0ec;border:1px solid var(--line);font-size:12px}.chip,.muted{color:var(--muted)}.boot{place-items:center;color:var(--muted)}.boot,.login-page{min-height:100vh;display:grid}.login-page{place-items:center;padding:24px;background:radial-gradient(900px 420px at 20% 0,#d9ebe3,transparent 55%),radial-gradient(700px 360px at 100% 10%,#efe6cf,transparent 50%),var(--bg)}.login-card{width:min(520px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.login-brand{display:inline-block;padding:6px 10px;border-radius:8px;background:var(--sidebar);color:#e8f2ed;font-weight:700;margin-bottom:12px}.login-card h1{margin:0 0 8px;font-family:var(--display);font-size:1.45rem}.login-desc{color:var(--muted);margin:0 0 18px}.login-roles{display:flex;flex-direction:column;gap:10px}.login-role{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#f7faf8;border-radius:12px;padding:14px;cursor:pointer}.login-role:hover{border-color:#7bc4a8;background:#eefaf5}.login-role strong{display:block;margin-bottom:4px}.login-role span{color:var(--muted);font-size:.88rem}.filter-input,.filter-select{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;min-width:200px}.field-label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:4px}.portal-hero{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;padding:22px;border-radius:18px;margin-bottom:16px;background:linear-gradient(135deg,rgba(15,31,26,.92),rgba(31,122,92,.85)),radial-gradient(600px 240px at 80% 20%,rgba(196,163,90,.35),transparent);color:#f4fff9;box-shadow:var(--shadow)}.portal-kicker{font-size:.8rem;opacity:.75;margin-bottom:6px}.portal-hero h1{margin:0;font-family:var(--display);font-size:1.7rem;color:#fff}.portal-hero p{margin:10px 0 16px;opacity:.88;max-width:36em}.portal-hero .btn-secondary{background:rgba(255,255,255,.14);color:#fff}.portal-hero-stats{display:grid;gap:10px;align-content:center}.portal-hero-stats div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 14px}.portal-hero-stats strong{display:block;font-size:1.35rem}.portal-hero-stats span{font-size:.8rem;opacity:.75}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfcfb}.portal-card-cat{font-size:.75rem;color:var(--accent);margin-bottom:6px;font-weight:650}.portal-feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portal-feats div{padding:12px;border-radius:12px;background:#f4f8f6;border:1px solid var(--line)}.portal-feats p{margin:6px 0 0;color:var(--muted);font-size:.88rem}.hall-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}@media (max-width:1100px){.grid-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.funnel{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-feats,.portal-grid,.portal-hero,.two-col{grid-template-columns:1fr}}.login-shop-link{display:inline-block;margin-top:16px;color:var(--accent);font-weight:700}.login-card-wide{width:min(980px,100%)}.entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.entry-card{display:flex;flex-direction:column;gap:6px;text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:16px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow)}.entry-card:hover{border-color:var(--accent)}.entry-card span{color:var(--accent);font-size:.8rem;font-weight:700}.entry-card strong{font-family:var(--display);font-size:1.15rem}.entry-card p{margin:0;color:var(--muted);font-size:.88rem}.shop-hero{margin-bottom:22px;padding:28px;border-radius:var(--radius);background:linear-gradient(135deg,var(--sidebar),#1f7a5c 70%),var(--panel);color:#f4fff9;box-shadow:var(--shadow)}.shop-hero h1{margin:0 0 8px;font-family:var(--display);font-size:2.4rem;color:#fff}.shop-hero p{margin:0;max-width:40em;color:rgba(244,255,249,.86)}.shop-hero .shop-kicker{color:#f0d7a4}.store-stock{font-weight:700;color:var(--ink)!important}.product-card{position:relative;overflow:hidden}.product-band{height:8px;margin:-20px -20px 8px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.product-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.product-card .filter-input{width:100%;display:block;margin-bottom:8px}.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--panel)}.qty-stepper button{width:34px;height:34px;border:0;background:#f4f8f6;color:var(--ink);cursor:pointer}.qty-stepper button:disabled{opacity:.4;cursor:default}.qty-stepper span{min-width:28px;text-align:center;font-weight:700}.cart-count{display:inline-grid;place-items:center;min-width:1.3rem;height:1.3rem;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:.75rem}.cart-lines{display:grid;gap:10px;margin:12px 0}.cart-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.cart-line p{margin:4px 0 0}.receipt{margin:12px 0;padding:12px 14px;border-radius:12px;background:#f7faf8;border:1px solid var(--line)}.receipt-row{display:flex;justify-content:space-between;gap:12px;padding:4px 0;color:var(--muted)}.receipt-row.total{margin-top:6px;padding-top:8px;border-top:1px solid var(--line);color:var(--ink);font-size:1.05rem}.fulfillment{margin:8px 0 16px;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px dashed var(--accent)}.fulfillment p{margin:6px 0 0;color:var(--muted)}.pay-due{font-family:var(--display);font-size:3rem;line-height:1.1;margin:8px 0}.pay-scan{width:min(280px,100%);margin:16px 0;padding:16px;border-radius:16px;background:#fff;border:1px solid var(--line);text-align:center}.pay-scan p{margin:10px 0 0;color:var(--muted);font-size:.85rem}.pay-matrix{display:grid;grid-template-columns:repeat(21,1fr);gap:2px;aspect-ratio:1}.pay-matrix i{display:block;background:#f3f6f4;aspect-ratio:1}.pay-matrix i.on{background:var(--ink)}.order-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;margin:8px 0;padding:0}.order-timeline li{padding:8px;border-radius:10px;background:#f4f7f5;border:1px solid var(--line);color:var(--muted)}.order-timeline li.done{background:#e7f6f1;border-color:#b7e4d8;color:var(--ok)}.order-timeline span,.order-timeline strong{display:block}.order-timeline span{font-size:.75rem;margin-top:4px}.merchant-switch{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 16px}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:8px}.stat-split{font-size:1.1rem;color:var(--muted)}.section-title{margin:22px 0 12px;font-family:var(--display)}@media (max-width:860px){.entry-grid,.order-timeline,.stat-row{grid-template-columns:1fr}.cart-line{flex-wrap:wrap}.pay-due{font-size:2.4rem}}.shop-page{min-height:100vh;color:var(--ink)}.shop-header{justify-content:space-between;gap:16px;padding:16px 28px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.shop-brand,.shop-header{display:flex;align-items:center}.shop-brand{gap:12px;color:var(--ink)}.shop-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:700}.shop-brand strong{display:block;font-family:var(--display);font-size:1.15rem}.shop-brand small{color:var(--muted)}.shop-nav{display:flex;gap:18px;font-weight:650}.shop-nav a:hover{color:var(--accent)}.shop-main{width:min(1040px,calc(100% - 32px));margin:0 auto;padding:28px 0 56px}.shop-lead h1{margin:0 0 8px;font-family:var(--display);font-size:2rem;color:var(--ink)}.shop-lead p,.shop-muted{color:var(--muted)}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.shop-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:8px;color:var(--ink);text-align:left}.shop-card h2{margin:0;font-size:1.2rem}.shop-card p{margin:0;color:var(--muted)}.shop-card.is-active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(31,122,92,.18)}.shop-card-btn{align-self:flex-start;display:inline-block}.shop-card-btn-reset{cursor:pointer;font:inherit}.shop-kicker{color:var(--accent);font-size:.8rem;font-weight:700}.shop-price{font-family:var(--display);font-size:1.7rem;color:var(--ink)}.shop-form{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-top:18px}.shop-form .filter-input{width:100%;margin-bottom:12px;display:block}.pay-methods{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.pay-method{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:8px 14px;cursor:pointer}.pay-method.active{border-color:var(--accent);color:var(--accent);font-weight:700}.pay-hero{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.pay-hero h1{font-family:var(--display);margin:12px 0 8px}.pay-status{display:inline-block;padding:4px 10px;border-radius:999px;background:#fff6e8;color:var(--warn);font-weight:700}.pay-status.paid{background:#e7f6f1;color:var(--ok)}.shop-note{color:var(--muted);line-height:1.6}.pickup-code{font-family:var(--display);font-size:2rem;letter-spacing:.08em;color:var(--accent)}.shop-error{color:var(--danger)}.shop-order-list{display:grid;gap:12px;margin-top:16px}@media (max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:20}.nav{flex-direction:row;overflow:auto}.sidebar-foot{display:none}.topbar{flex-direction:column;align-items:flex-start}.shop-grid,.shop-grid-2{grid-template-columns:1fr}.shop-header{flex-direction:column;align-items:flex-start}}