:root{font-family:Inter,"Segoe UI","Noto Sans SC",Arial,sans-serif;color:#203454;background:#f8f4ee;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
button{font:inherit}
button:focus-visible{outline:3px solid #ff8a32;outline-offset:3px}
[hidden]{display:none!important}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:252px;flex-shrink:0;background:linear-gradient(170deg,#143c8b 0%,#0f4ed0 64%,#1940a1 100%);color:white;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:29px 16px 20px}
.brand{display:flex;align-items:center;gap:12px;padding:3px 11px 42px}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:#fff0d9;color:#ff7300;font-size:30px;box-shadow:0 5px 15px #001d4a30}
.brand strong{display:block;font-size:22px;letter-spacing:-.8px}
.brand strong span{color:#ffb365}
.brand small{display:block;font-size:9px;letter-spacing:1.8px;color:#d8e7ff;margin-top:4px}
.side-label{font-size:10px;letter-spacing:2px;color:#acc5f7;padding:0 14px 13px}
.nav{display:grid;gap:7px}
.nav-link{display:flex;align-items:center;gap:13px;text-align:left;width:100%;border:0;color:#dce9ff;background:transparent;border-radius:13px;padding:12px 14px;cursor:pointer;min-height:57px}
.nav-link:hover{background:#ffffff18}
.nav-link.active{background:#fff;color:#1249bf;box-shadow:0 6px 18px #082f862b}
.nav-link span:nth-child(2){font-size:14px;font-weight:750}
.nav-link small{display:block;font-size:11px;font-weight:400;margin-top:4px;opacity:.78}
.nav-icon{font-size:23px;width:27px;text-align:center}
.lock{margin-left:auto;font-size:13px}
.sidebar-bottom{display:flex;align-items:center;gap:10px;margin-top:auto;border-top:1px solid #ffffff30;padding:22px 10px 2px;font-size:12px}
.sidebar-bottom small{display:block;font-size:11px;color:#c8d9ff;margin-top:4px}
.avatar{background:#fff3dd;color:#ec6a09;width:38px;height:38px;border-radius:13px;display:grid;place-items:center;font-weight:900;font-size:20px}
.main-wrap{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:76px;background:#fffdfa;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,4vw,58px);border-bottom:1px solid #ece8e2}
.breadcrumb{font-size:13px;color:#75829a}
.breadcrumb span{padding:0 9px;color:#bdc5d0}
.breadcrumb b{color:#203454}
.top-right,.top-left{display:flex;align-items:center;gap:16px}
.environment{font-size:11px;color:#be6b10;background:#fff0d9;padding:9px 13px;border-radius:30px;font-weight:700}
.date{font-size:12px;color:#8190a5}
.menu-toggle{display:none;background:white;border:1px solid #e0e7f3;border-radius:9px;padding:8px 12px;color:#0f4ed0}
.content{width:100%;max-width:1510px;margin:0 auto;padding:35px clamp(20px,4vw,58px) 50px;flex:1}
.welcome{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;min-height:228px;border-radius:23px;padding:34px 42px;background:linear-gradient(107deg,#e6f0ff 0%,#f3f7ff 64%,#fff0d9 100%);border:1px solid #e4edff}
.eyebrow{font-size:10px;letter-spacing:2px;color:#0f4ed0;font-weight:800}
.welcome h1{font-size:clamp(25px,2.7vw,36px);letter-spacing:-1.3px;margin:13px 0;color:#16356d;line-height:1.2}
.sparkle{color:#ff7300}
.welcome p{font-size:14px;line-height:1.7;color:#61718d;max-width:600px;margin:0 0 19px}
.preview-note{display:inline-block;background:white;color:#b45f14;border:1px solid #f7dbb7;padding:8px 12px;border-radius:30px;font-size:11px;font-weight:700}
.welcome-art{width:165px;height:165px;position:relative;flex-shrink:0}
.orb{width:145px;height:145px;border-radius:42px;transform:rotate(-11deg);display:grid;place-items:center;background:linear-gradient(135deg,#ffac43,#ff7300);box-shadow:0 22px 40px #f5a04455;color:#fff;font-size:80px}
.art-1,.art-2{position:absolute;color:#0f4ed0;font-size:30px}
.art-1{top:3px;right:4px}
.art-2{bottom:0;right:5px;color:#ff7300}
.section-heading{display:flex;justify-content:space-between;align-items:center;margin:32px 0 16px;gap:10px}
.section-heading h2{font-size:18px;margin:0;color:#1e3658}
.section-heading h2 span{font-size:13px;color:#8a98ab;font-weight:500;margin-left:8px}
.muted{font-size:11px;color:#9ba8b8}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.stat{border-radius:18px;min-height:177px;padding:21px 22px;border:1px solid #ffffffa0;display:flex;flex-direction:column;align-items:flex-start}
.stat.blue{background:#e5efff}
.stat.orange{background:#fff0e1}
.stat.mint{background:#dff7ef}
.stat.lilac{background:#f0e8ff}
.stat-symbol{font-size:24px;color:#0f4ed0}
.orange .stat-symbol{color:#f47718}
.mint .stat-symbol{color:#1da786}
.lilac .stat-symbol{color:#9463d4}
.stat-number{font-size:34px;font-weight:800;color:#19375f;margin:12px 0 4px}
.stat b{font-size:13px}
.stat small{font-size:11px;color:#78869a;margin-top:5px}
.quick-title{margin-top:40px}
.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.quick{display:flex;align-items:center;gap:12px;min-height:100px;text-align:left;padding:18px;border:1px solid #e8e9ec;background:white;border-radius:17px;cursor:pointer;box-shadow:0 6px 19px #294e6b08;transition:transform .2s,box-shadow .2s}
.quick:hover{transform:translateY(-3px);box-shadow:0 10px 24px #294e6b13}
.quick-icon,.module-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;font-size:23px;flex-shrink:0}
.q-blue{background:#e5efff;color:#0f4ed0}
.q-orange{background:#fff0e1;color:#ff7300}
.q-lilac{background:#f0e8ff;color:#8d5ed1}
.q-mint{background:#dff7ef;color:#139d82}
.quick b{display:block;font-size:13px;color:#203454}
.quick small{display:block;color:#8592a4;margin-top:5px;font-size:11px}
.quick-arrow{margin-left:auto;color:#a2b0c0}
.bottom-note{display:flex;align-items:center;gap:15px;margin-top:35px;background:#fffdfa;border:1px solid #ece9e5;padding:22px 25px;border-radius:17px}
.bottom-note>span{font-size:30px;color:#ff7300}
.bottom-note b{font-size:13px}
.bottom-note p{font-size:12px;line-height:1.7;color:#8691a2;margin:5px 0 0}
.module{background:#fffdfa;border:1px solid #ece8e2;border-radius:22px;padding:40px;min-height:330px}
.module-icon{margin-bottom:23px}
.module h1{font-size:30px;margin:12px 0}
.module h1 span{font-size:18px;color:#8d99a9;font-weight:500}
.module p{color:#718099;line-height:1.7;font-size:14px}
.coming{display:inline-block;background:#fff0df;color:#b76413;border-radius:12px;padding:12px 16px;font-size:12px;margin-top:20px;font-weight:700}
footer{padding:18px clamp(20px,4vw,58px);border-top:1px solid #ebe8e3;font-size:11px;color:#98a3b1;display:flex;justify-content:space-between;gap:10px}
.overlay{display:none}
@media(max-width:1150px){.stats,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sidebar{width:225px}
.welcome-art{transform:scale(.8);margin-right:-15px}
}
@media(max-width:760px){.sidebar{position:fixed;z-index:30;transform:translateX(-105%);transition:transform .2s;box-shadow:15px 0 40px #142c4c2b}
.sidebar.open{transform:translateX(0)}
.overlay:not([hidden]){display:block;position:fixed;inset:0;background:#122c4c70;z-index:20}
.menu-toggle{display:inline-block}
.topbar{height:65px}
.content{padding-top:21px}
.welcome{padding:26px 22px;min-height:0}
.welcome-art{display:none}
.welcome h1{font-size:26px}
.stats,.quick-grid{gap:11px}
.stat{padding:17px 15px;min-height:160px}
.stat b{font-size:12px}
.stat-number{font-size:30px}
.quick{min-height:90px;padding:13px;gap:9px}
.quick-icon{width:38px;height:38px}
.quick-arrow{display:none}
.date{display:none}
.muted{display:none}
.module{padding:28px 22px}
.section-heading h2{font-size:17px}
}
@media(max-width:390px){.stats,.quick-grid{grid-template-columns:1fr}
.stat{min-height:135px}
.quick{min-height:75px}
}

/* Authentication gate: closed until current session AND authorized membership are verified */
.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f8f4ee}
.auth-card{background:white;border-radius:22px;box-shadow:0 16px 48px #12335b1a;padding:32px;width:min(100%,420px);display:grid;gap:12px;color:#203454}
.auth-card h1{margin:8px 0 0;font-size:24px}.auth-card p{margin:0;color:#64748b}
.auth-brand{font-weight:800;color:#0f4ed0}.auth-card label{font-weight:700;margin-top:4px}
.auth-card input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:12px;font:inherit}
.auth-card button{background:#0f4ed0;color:white;border:0;border-radius:12px;padding:13px;font-weight:800;cursor:pointer}
.auth-card button:disabled{opacity:.6}.auth-card #authStatus{min-height:20px;color:#ab3450}
#logoutButton{padding:8px 12px;border:1px solid #cbd5e1;background:white;border-radius:10px;cursor:pointer}
#memberIdentity{font-size:12px;color:#64748b}

/* Dashboard V2 · visual-only refinements · 2026-10-20 */
:root{color:#203451;background:#f5f8fe}
body{background:linear-gradient(180deg,#f7faff 0%,#f4f7fc 100%)}
.sidebar{background:linear-gradient(165deg,#123a86 0%,#1451b8 65%,#153f97 100%);padding-top:26px;box-shadow:5px 0 26px rgba(17,57,126,.09)}
.brand{padding-bottom:38px;gap:13px}
.brand-mark{border-radius:16px;background:linear-gradient(145deg,#fff9ef,#ffdfae);box-shadow:inset 0 1px 0 #fff,0 9px 20px #08295d44}
.brand strong{font-size:23px;letter-spacing:-.9px}
.brand-subtitle{display:block;margin-top:7px;color:#d5e6ff;font-size:10px;line-height:1.35}
.side-label{opacity:.88;font-weight:750}
.nav{gap:8px}
.nav-link{border:1px solid transparent;border-radius:15px;transition:background .18s,transform .18s,border-color .18s;padding:12px 13px}
.nav-link:hover{background:#ffffff22;border-color:#ffffff18;transform:translateX(2px)}
.nav-link.active{background:linear-gradient(110deg,#fff,#edf5ff);box-shadow:0 9px 23px #06275a40;border-color:#ffffffaa}
.nav-icon{width:33px;height:33px;display:grid;place-items:center;border-radius:11px;background:#ffffff12;font-size:21px;flex-shrink:0}
.nav-link.active .nav-icon{background:#dcecff;color:#1451bd}
.sidebar-bottom{border-top-color:#ffffff35;background:#ffffff0b;border-radius:18px;padding:15px 10px;margin-bottom:1px}
.avatar{border-radius:14px;box-shadow:0 3px 12px #0c2c6e30}
.topbar{background:#ffffffeb;border-bottom-color:#e6ecf5;min-height:76px;box-shadow:0 3px 22px #20457b06}
.environment{color:#a05a0a;background:#fff4df;border:1px solid #f6dfbd;font-size:10px;letter-spacing:.3px}
.content{padding-top:34px}
.page[data-view="dashboard"] .welcome{isolation:isolate;min-height:252px;padding:39px clamp(28px,3.5vw,50px);border-radius:28px;border-color:#d9e7ff;background:radial-gradient(circle at 90% 17%,#ffffffb0 0 7%,transparent 24%),linear-gradient(110deg,#e0edff 0%,#f0f6ff 60%,#fff0dd 100%);box-shadow:0 18px 38px #2152a012}
.page[data-view="dashboard"] .welcome:before{content:"";position:absolute;right:-82px;bottom:-165px;width:380px;height:380px;border:1px solid #ffffffb8;border-radius:50%;box-shadow:0 0 0 29px #ffffff32,0 0 0 61px #ffffff24;z-index:-1}
.page[data-view="dashboard"] .welcome:after{content:"✦";position:absolute;right:33%;top:18%;font-size:24px;color:#ffae57;opacity:.72}
.page[data-view="dashboard"] .welcome>div:first-child{position:relative;z-index:1;max-width:710px}
.page[data-view="dashboard"] .eyebrow{letter-spacing:1.8px;font-size:10px}
.page[data-view="dashboard"] .welcome h1{font-size:clamp(27px,2.8vw,39px);letter-spacing:-1.15px;margin:15px 0;line-height:1.22}
.page[data-view="dashboard"] .welcome p{max-width:565px;color:#5b7192;font-size:14px}
.page[data-view="dashboard"] .preview-note{background:#ffffffdd;border:1px solid #f0dcbf;color:#925513;box-shadow:0 4px 11px #ad733111;font-size:11px}
.page[data-view="dashboard"] .welcome-art{width:170px;height:165px;display:grid;place-items:center}
.page[data-view="dashboard"] .orb{width:128px;height:128px;border-radius:38px;background:linear-gradient(145deg,#ffcf87,#ff983e 58%,#f17726);transform:rotate(-10deg);font-size:70px;box-shadow:inset 3px 4px 10px #ffffff76,0 20px 30px #d9863452}
.page[data-view="dashboard"] .section-heading{margin-top:36px;margin-bottom:17px}
.page[data-view="dashboard"] .section-heading h2{font-size:19px;font-weight:800;letter-spacing:-.3px}
.page[data-view="dashboard"] .section-heading h2 span{font-size:12px}
.page[data-view="dashboard"] .stats,.page[data-view="dashboard"] .quick-grid{gap:17px}
.page[data-view="dashboard"] .stat{position:relative;overflow:hidden;border-radius:22px;min-height:184px;padding:24px;box-shadow:0 10px 27px #2344770b;border:1px solid #ffffffc9}
.page[data-view="dashboard"] .stat:after{content:"";position:absolute;right:-24px;top:-31px;width:116px;height:116px;border-radius:38px;transform:rotate(23deg);border:1px solid #ffffff88;background:#ffffff35}
.page[data-view="dashboard"] .stat.blue{background:linear-gradient(140deg,#e4efff,#f1f7ff)}
.page[data-view="dashboard"] .stat.orange{background:linear-gradient(140deg,#fff0de,#fff8ef)}
.page[data-view="dashboard"] .stat.mint{background:linear-gradient(140deg,#dcf6ed,#effcf7)}
.page[data-view="dashboard"] .stat.lilac{background:linear-gradient(140deg,#efe7ff,#f7f1ff)}
.page[data-view="dashboard"] .stat-symbol{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;background:#ffffff9c;box-shadow:inset 0 1px 0 #fff,0 5px 13px #27477810;font-size:23px;position:relative;z-index:1}
.page[data-view="dashboard"] .stat-number{font-size:36px;line-height:1.15;margin:15px 0 5px;letter-spacing:-1px}
.page[data-view="dashboard"] .stat b{font-size:13px;color:#243d60;position:relative;z-index:1}
.page[data-view="dashboard"] .stat small{color:#7285a0;position:relative;z-index:1}
.page[data-view="dashboard"] .quick-title{margin-top:40px}
.page[data-view="dashboard"] .quick{position:relative;min-height:112px;border-radius:21px;border-color:#e4ebf6;padding:20px;box-shadow:0 10px 25px #1e497d0b;transition:transform .18s,box-shadow .18s,border-color .18s}
.page[data-view="dashboard"] .quick:hover{transform:translateY(-3px);border-color:#bfd3f8;box-shadow:0 17px 29px #1e497d18}
.page[data-view="dashboard"] .quick:active{transform:translateY(-1px)}
.page[data-view="dashboard"] .quick-icon{width:51px;height:51px;border-radius:17px;font-size:24px}
.page[data-view="dashboard"] .quick b{font-size:14px}
.page[data-view="dashboard"] .quick small{font-size:11px;line-height:1.45}
.page[data-view="dashboard"] .quick-arrow{font-size:19px;color:#8ba5cb;align-self:flex-start}
.page[data-view="dashboard"] .bottom-note{background:linear-gradient(95deg,#fff,#fffaf2);border-color:#eee9e0;border-radius:20px;box-shadow:0 7px 22px #25508508;margin-top:36px}
@media(max-width:1150px){.page[data-view="dashboard"] .welcome{padding:31px}.page[data-view="dashboard"] .stats,.page[data-view="dashboard"] .quick-grid{gap:14px}}
@media(max-width:760px){.sidebar{box-shadow:15px 0 40px #142c4c2b}.topbar{min-height:65px}.page[data-view="dashboard"] .welcome{padding:26px 22px;min-height:0;border-radius:22px}.page[data-view="dashboard"] .welcome-art{display:none}.page[data-view="dashboard"] .welcome h1{font-size:26px}.page[data-view="dashboard"] .welcome:after{display:none}.page[data-view="dashboard"] .stat{min-height:164px;padding:17px}.page[data-view="dashboard"] .quick{min-height:91px;padding:13px}.page[data-view="dashboard"] .quick-icon{width:39px;height:39px}.page[data-view="dashboard"] .section-heading{margin-top:28px}.page[data-view="dashboard"] .stats,.page[data-view="dashboard"] .quick-grid{gap:11px}}
@media(max-width:390px){.page[data-view="dashboard"] .stat{min-height:135px}.page[data-view="dashboard"] .quick{min-height:76px}}
@media(prefers-reduced-motion:reduce){.nav-link,.page[data-view="dashboard"] .quick{transition:none}}

/* Dashboard V3 · sample-matched layout refinement (no functional changes) */
body{background:#f8f6f2}
.main-wrap{background:linear-gradient(180deg,#f9f6f1,#fdfbf8 45%,#faf9f6)}
.sidebar{width:252px;background:linear-gradient(165deg,#133a85 0%,#1152be 70%,#1050b9 100%);box-shadow:none}
.brand-mark{background:#fff8ec;color:#fb8415}
.topbar{background:#fffdfb;border-bottom-color:#eeebe6}
.page[data-view="dashboard"] .welcome{min-height:246px;background:linear-gradient(105deg,#e0edff 0%,#eaf3ff 63%,#fff0d8 100%);border-color:#e1e9f5;box-shadow:none;border-radius:26px}
.page[data-view="dashboard"] .welcome h1{color:#173f82;font-weight:850;letter-spacing:-1.35px}
.page[data-view="dashboard"] .welcome p{font-weight:500;color:#355c94}
.page[data-view="dashboard"] .welcome .eyebrow{color:#1355bf}
.page[data-view="dashboard"] .welcome-art{margin-right:8px}
.page[data-view="dashboard"] .section-heading h2{color:#173c72}
.page[data-view="dashboard"] .stat{min-height:190px;box-shadow:none;border-radius:24px;padding:24px 26px}
.page[data-view="dashboard"] .stat.blue{background:linear-gradient(130deg,#e2edff,#ebf4ff)}
.page[data-view="dashboard"] .stat.orange{background:linear-gradient(130deg,#fff0df,#fff6eb)}
.page[data-view="dashboard"] .stat.mint{background:linear-gradient(130deg,#dcf7ee,#e9faf5)}
.page[data-view="dashboard"] .stat.lilac{background:linear-gradient(130deg,#f0e7ff,#f6efff)}
.page[data-view="dashboard"] .stat:after{width:132px;height:132px;border-radius:44px;right:-22px;top:38px;background:#ffffff20;opacity:.65}
.page[data-view="dashboard"] .stat-symbol{background:#ffffff60;box-shadow:none}
.page[data-view="dashboard"] .quick{box-shadow:0 3px 16px #20457709;border-color:#e8edf4}
.page[data-view="dashboard"] .bottom-note{box-shadow:none}
@media(min-width:1350px){.page[data-view="dashboard"] .welcome h1{font-size:37px}.page[data-view="dashboard"] .welcome-art{width:220px}}
@media(max-width:760px){.page[data-view="dashboard"] .welcome{min-height:0}.page[data-view="dashboard"] .stat{min-height:165px;padding:17px}.sidebar{width:252px}}
