*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#f7f3ea;--bg-secondary:#fff;--bg-card:#fff;--bg-hover:#efe8d8;--bg-sunken:#ede5d3;--text-primary:#2b2a22;--text-secondary:#6b6355;--text-light:#a39a88;--text-white:#fff;--border-color:#e2d8c3;--border-light:#ece3d2;--border-hover:#5f6e4a;--accent:#5f6e4a;--accent-dark:#4a5738;--accent-light:#7d8c66;--accent-soft:#e9ede1;--accent-rgb:95,110,74;--accent-2:#b5654a;--accent-2-dark:#93503a;--accent-2-soft:#f3e3dc;--color-success:#6b8f71;--color-success-dark:#557458;--color-danger:#a8503e;--color-danger-dark:#863f30;--color-warning:#b98a3e;--color-warning-dark:#96692a;--color-info:#5c7a8a;--color-info-dark:#46606d;--chart-1:#5f6e4a;--chart-2:#b5654a;--chart-3:#c9a96a;--chart-4:#5c7a8a;--chart-5:#8c7a6a;--chart-6:#7d8c66;--shadow-sm:0 2px 8px #2b2a220f;--shadow-md:0 6px 20px #2b2a2214;--shadow-lg:0 12px 36px #2b2a221f;--transition-fast:all 0.15s ease;--transition:all 0.25s ease;--transition-slow:all 0.4s ease;--spacing-xs:0.5rem;--spacing-sm:0.75rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:50%;--font-display:"Fraunces",Georgia,"Times New Roman",serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f7f3ea;background-color:var(--bg-primary);color:#2b2a22;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);line-height:1.6}.font-display,h1,h2,h3{font-family:Fraunces,Georgia,Times New Roman,serif;font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}code{font-family:Courier New,Courier,monospace}.btn{align-items:center;border:1px solid #0000;border-radius:8px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:.9rem;font-weight:600;gap:.5rem;line-height:1.2;padding:.7rem 1.35rem;text-decoration:none;transition:all .25s ease;transition:var(--transition)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:#5f6e4a;background:var(--accent);color:#fff;color:var(--text-white)}.btn-primary:hover:not(:disabled){background:#4a5738;background:var(--accent-dark)}.btn-secondary{background:#fff;background:var(--bg-secondary);border-color:#e2d8c3;border-color:var(--border-color);color:#2b2a22;color:var(--text-primary)}.btn-secondary:hover:not(:disabled){border-color:#5f6e4a;border-color:var(--accent);color:#4a5738;color:var(--accent-dark)}.btn-danger{background:#a8503e;background:var(--color-danger);color:#fff;color:var(--text-white)}.btn-danger:hover:not(:disabled){background:#863f30;background:var(--color-danger-dark)}.btn-success{background:#6b8f71;background:var(--color-success);color:#fff;color:var(--text-white)}.btn-success:hover:not(:disabled){background:#557458;background:var(--color-success-dark)}.card{background:#fff;background:var(--bg-card);border:1px solid #ece3d2;border:1px solid var(--border-light);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 2px 8px #2b2a220f;box-shadow:var(--shadow-sm);padding:1.75rem;transition:all .25s ease;transition:var(--transition)}.card:hover{box-shadow:0 6px 20px #2b2a2214;box-shadow:var(--shadow-md)}.card-header{margin-bottom:1.5rem}.card-header h2{color:#2b2a22;color:var(--text-primary);font-size:1.4rem;margin-bottom:.4rem}.card-header p{color:#6b6355;color:var(--text-secondary);font-size:.9rem}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.form-group label{color:#6b6355;color:var(--text-secondary);font-size:.82rem;font-weight:600;letter-spacing:.2px}.form-group input,.form-group select,.form-group textarea{background:#f7f3ea;background:var(--bg-primary);border:1px solid #e2d8c3;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);color:#2b2a22;color:var(--text-primary);font-family:inherit;font-size:.92rem;padding:.75rem .9rem;transition:all .25s ease;transition:var(--transition)}.form-group input::placeholder,.form-group textarea::placeholder{color:#a39a88;color:var(--text-light)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff;background:var(--bg-secondary);border-color:#5f6e4a;border-color:var(--accent);box-shadow:0 0 0 3px #e9ede1;box-shadow:0 0 0 3px var(--accent-soft);outline:none}.container{margin:0 auto;max-width:1400px;padding:2rem}.error{background:#f3e3dc;background:var(--accent-2-soft);border:1px solid #a8503e4d;border-radius:8px;border-radius:var(--radius-md);color:#863f30;color:var(--color-danger-dark)}.error,.success{align-items:center;display:flex;font-size:.85rem;font-weight:500;gap:.6rem;margin-bottom:1rem;padding:.8rem 1rem}.success{background:#e9ede1;background:var(--accent-soft);border:1px solid #6b8f714d;border-radius:8px;border-radius:var(--radius-md);color:#557458;color:var(--color-success-dark)}.loading-spinner{animation:spin .8s linear infinite;border:3px solid #e2d8c3;border-top-color:#5f6e4a;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--accent);height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:4rem}.loading-text{color:#6b6355;color:var(--text-secondary);font-weight:500}.login-page{background:#f7f3ea;color:var(--text-primary);display:grid;grid-template-columns:minmax(390px,.78fr) minmax(560px,1.22fr);height:100vh;height:100dvh;min-width:0;overflow:hidden;width:100%}.login-entry{background:#f8f5ed;border-right:1px solid #ded6c6;display:flex;flex-direction:column;min-width:0;padding:clamp(28px,3.6vw,62px)}.login-brand{align-items:center;display:flex;gap:11px}.login-brand-mark{background:#4f6245;border-radius:5px;color:#f7f3ea;display:grid;height:38px;place-items:center;width:38px}.login-brand-name{font-size:25px;font-weight:600}.login-form-area{margin:auto 0;width:min(100%,390px)}.login-heading{margin-bottom:clamp(27px,4.5vh,44px)}.login-heading>span{color:#657458;display:block;font-size:10px;font-weight:700;letter-spacing:.16em;margin-bottom:13px}.login-heading h1{font:600 clamp(28px,2.3vw,36px)/1.2 var(--font-body);letter-spacing:-.035em;margin:0 0 9px}.login-heading p{color:var(--text-secondary);font-size:13px}.login-form{grid-gap:19px;display:grid;gap:19px}.login-field{grid-gap:8px;display:grid;gap:8px}.login-field label{color:#514d44;font-size:12px;font-weight:600}.login-input-wrap{grid-gap:10px;align-items:center;background:#fffdf8;border:1px solid #cfc6b5;border-radius:5px;color:#857e70;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;height:49px;padding:0 14px;transition:border-color .16s,box-shadow .16s}.login-input-wrap:focus-within{border-color:#596d4c;box-shadow:0 0 0 3px #5f6e4a1c;color:#526446}.login-input-wrap input{background:#0000;border:0;color:var(--text-primary);font:400 14px var(--font-body);height:100%;min-width:0;outline:0;padding:0;width:100%}.login-input-wrap input::placeholder{color:#aaa292}.login-input-wrap input:disabled,.login-input-wrap input:disabled+.login-password-toggle{opacity:.55}.login-password-toggle{background:#0000;border:0;border-radius:4px;color:#777164;cursor:pointer;display:grid;height:30px;margin-right:-7px;place-items:center;width:30px}.login-password-toggle:hover:not(:disabled){background:#edf0e7;color:#3f5137}.login-password-toggle:focus-visible,.login-submit:focus-visible{outline:3px solid #5f6e4a47;outline-offset:2px}.login-error{background:#f4e8e2;border-left:3px solid var(--color-danger);color:var(--color-danger-dark);font-size:12px;line-height:1.5;padding:11px 13px}.login-submit{align-items:center;background:#4f6245;border:1px solid #43543b;border-radius:5px;color:#fff;cursor:pointer;display:flex;font:600 13px var(--font-body);justify-content:space-between;min-height:49px;padding:0 18px;transition:background .16s,transform .16s;width:100%}.login-submit:hover:not(:disabled){background:#3f5137;transform:translateY(-1px)}.login-submit:disabled{cursor:wait;opacity:.65}.login-spinner{animation:login-spin .7s linear infinite;border:2px solid #ffffff6b;border-radius:50%;border-top-color:#fff;height:15px;width:15px}.login-mobile-scope{display:none}.login-entry-footer{border-top:1px solid #ded6c6;color:#8b8375;display:flex;font-size:10px;justify-content:space-between;letter-spacing:.04em;padding-top:20px}.login-product{background-color:#35493b;background-image:linear-gradient(hsla(0,0%,100%,.035) 1px,#0000 0),linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,#0000 0);background-size:28px 28px;border-radius:8px;color:#f8f4ea;display:flex;flex-direction:column;margin:14px;min-width:0;overflow:hidden;padding:clamp(30px,4vw,68px);position:relative}.login-product-header{max-width:660px}.login-product-header>span{color:#bac8ac;display:block;font-size:10px;font-weight:700;letter-spacing:.16em;margin-bottom:12px}.login-product-header h2{color:#fffaf0;font:500 clamp(30px,3vw,47px)/1.15 var(--font-display);margin:0 0 9px}.login-product-header p{color:#f8f4eab3;font-size:13px;line-height:1.65;max-width:580px}.login-product-body{grid-gap:clamp(28px,4vw,70px);align-items:center;display:grid;gap:clamp(28px,4vw,70px);grid-template-columns:minmax(210px,.85fr) minmax(285px,1.15fr);margin:auto 0;min-height:0;padding:24px 0}.login-qr-stage{margin:0;min-width:0}.login-qr-paper{aspect-ratio:1;background:#f7f3ea;border:1px solid #ded6c6;border-radius:5px;box-shadow:12px 12px 0 #1c2b2159;display:grid;padding:clamp(20px,2.4vw,35px);place-items:center;width:min(100%,320px)}.login-qr{fill:currentColor;shape-rendering:crispEdges;color:#35493b;display:block;height:100%;width:100%}.login-qr .login-qr-cutout{fill:#f7f3ea}.login-qr-stage figcaption{color:#d9e2ce;display:flex;gap:12px;justify-content:space-between;margin-top:15px;width:min(100%,320px)}.login-qr-stage figcaption span{font-size:9px;font-weight:700;letter-spacing:.13em}.login-qr-stage figcaption small{color:#f8f4ea8c;font-size:9px}.login-offers{border-top:1px solid #fff3;min-width:0}.login-offer{grid-gap:13px;align-items:start;border-bottom:1px solid #fff3;display:grid;gap:13px;grid-template-columns:25px 28px minmax(0,1fr);min-width:0;padding:clamp(15px,2vh,23px) 0}.login-offer-number{color:#aebe9f;font-size:9px;font-weight:700;letter-spacing:.08em;padding-top:3px}.login-offer>svg{color:#dfe8d3}.login-offer strong{color:#fffaf0;display:block;font-size:clamp(12px,1vw,15px)}.login-offer p{color:#f8f4ea9c;font-size:clamp(9px,.75vw,11px);line-height:1.55;margin-top:4px}.login-product-footer{align-items:center;color:#b9c7ad;display:flex;font-size:9px;font-weight:700;gap:12px;letter-spacing:.14em}.login-product-footer i{background:#ffffff47;height:1px;width:22px}@keyframes login-spin{to{transform:rotate(1turn)}}@media (min-width:901px) and (max-width:1160px){.login-page{grid-template-columns:minmax(370px,.85fr) minmax(510px,1.15fr)}.login-product{padding:32px}.login-product-body{gap:26px;grid-template-columns:minmax(180px,.75fr) minmax(260px,1.25fr)}.login-qr-paper,.login-qr-stage figcaption{max-width:250px}}@media (min-width:901px) and (max-height:680px){.login-entry{padding-bottom:25px;padding-top:25px}.login-heading{margin-bottom:22px}.login-form{gap:14px}.login-product{padding-bottom:25px;padding-top:25px}.login-product-header h2{font-size:31px}.login-product-header p{display:none}.login-product-body{padding:15px 0}.login-qr-paper,.login-qr-stage figcaption{max-width:220px}.login-offer{padding:13px 0}}@media (max-width:900px){.login-page{display:block;height:auto;min-height:100dvh;overflow:auto}.login-entry{border:0;min-height:100dvh;padding:24px clamp(20px,8vw,62px)}.login-form-area{margin:clamp(52px,9vh,80px) auto 0}.login-entry-footer{margin-top:auto}.login-mobile-scope{grid-gap:8px;border-top:1px solid #ded6c6;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:25px;padding-top:18px}.login-mobile-scope span{align-items:center;color:#68735e;display:flex;font-size:10px;font-weight:600;gap:5px;justify-content:center;min-width:0}.login-product{display:none}}@media (max-width:520px){.login-entry{padding:20px 18px}.login-brand-mark{height:35px;width:35px}.login-brand-name{font-size:23px}.login-heading h1{font-size:27px}.login-heading{margin-bottom:24px}.login-mobile-scope span{font-size:9px}}@media (max-height:650px) and (max-width:900px),(max-width:360px){.login-entry{padding-bottom:14px;padding-top:14px}.login-brand-mark{height:32px;width:32px}.login-brand-name{font-size:21px}.login-heading{margin-bottom:17px}.login-form-area{margin:auto}.login-heading>span{margin-bottom:7px}.login-heading h1{font-size:24px;margin-bottom:5px}.login-form{gap:12px}.login-input-wrap,.login-submit{height:45px;min-height:45px}.login-mobile-scope{margin-top:16px;padding-top:13px}.login-entry-footer{margin-top:12px;padding-top:12px}}.dashboard-page{--dash-gap:clamp(8px,min(1.1vw,1.45dvh),20px);--dash-pad:clamp(12px,min(1.8vw,2.15dvh),34px);background:linear-gradient(145deg,#f7f3ea,#f8f5ed 58%,#f2efe5);color:var(--text-primary);font-size:clamp(10px,min(.87vw,1.65dvh),16px);height:100vh;height:100dvh;min-width:0;overflow:hidden}.dashboard-shell{grid-gap:var(--dash-gap);display:grid;gap:var(--dash-gap);grid-template-rows:auto auto auto minmax(0,1fr);height:100%;min-height:0;padding:var(--dash-pad);width:100%}.dashboard-hero{align-items:center;background:linear-gradient(115deg,#2e4135,#465a43 52%,#667651);border-radius:clamp(15px,1.25em,24px);box-shadow:0 16px 44px #273b2e18;color:#f8f4ea;display:flex;flex-shrink:0;gap:2.2em;isolation:isolate;justify-content:space-between;overflow:hidden;padding:clamp(16px,1.75em,30px) clamp(18px,2.2em,38px);position:relative}.dashboard-hero-copy{max-width:55em;min-width:0;position:relative;z-index:2}.dashboard-eyebrow{align-items:center;color:#dbe4c9;display:flex;font-size:.68em;font-weight:700;gap:.55em;letter-spacing:.15em}.dashboard-hero h1{font:500 clamp(2.25em,3.25vw,4.15em)/1.03 var(--font-display);letter-spacing:-.035em;margin:.22em 0 .15em;max-width:13em}.dashboard-hero p{color:#e1e7db;font-size:.92em;line-height:1.55;max-width:49em}.dashboard-hero-actions{grid-gap:.75em;display:grid;flex:0 0 min(38em,46%);gap:.75em;grid-template-columns:repeat(2,minmax(0,1fr));z-index:2}.dashboard-action{grid-gap:.8em;align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #fff3;border-radius:1em;color:#fff;display:grid;gap:.8em;grid-template-columns:auto minmax(0,1fr) auto;padding:1em;text-decoration:none;transition:transform .18s,background .18s}.dashboard-action:hover{background:#ffffff20;transform:translateY(-2px)}.dashboard-action.primary{background:#f7f2e7;border-color:#f7f2e7;color:#31432f}.dashboard-action.primary:hover{background:#fff}.dashboard-action-icon{background:#ffffff17;border-radius:.75em;display:grid;height:2.55em;place-items:center;width:2.55em}.dashboard-action.primary .dashboard-action-icon{background:#dfe7d3}.dashboard-action span:nth-child(2){min-width:0}.dashboard-action small,.dashboard-action strong{display:block}.dashboard-action small{font-size:.56em;letter-spacing:.11em;margin-bottom:.32em;opacity:.7}.dashboard-action strong{font-size:.88em;white-space:nowrap}.dashboard-orbit{border:1px solid #fff2;border-radius:50%;position:absolute;z-index:-1}.orbit-one{height:22em;right:-8em;top:-14em;width:22em}.orbit-two{background:#ffffff08;bottom:-10em;height:12em;right:28%;width:12em}.dashboard-section-line{align-items:flex-end;display:flex;gap:1em;justify-content:space-between;min-width:0}.dashboard-section-line>div:first-child span,.dashboard-section-line>div:first-child strong{display:block}.dashboard-section-line>div:first-child span{color:var(--accent);font-size:.64em;font-weight:700;letter-spacing:.13em;margin-bottom:.2em;text-transform:uppercase}.dashboard-section-line>div:first-child strong{font:500 1.35em/1.1 var(--font-display)}.dashboard-freshness{align-items:center;color:var(--text-light);display:flex;font-size:.68em;gap:.55em;justify-content:flex-end;min-width:0}.dashboard-freshness>span{background:#7b9662;border-radius:50%;box-shadow:0 0 0 .3em #7b966217;flex-shrink:0;height:.55em;width:.55em}.dashboard-freshness>span.is-error{background:#b5654a;box-shadow:0 0 0 .3em #b5654a17}.dashboard-freshness button{background:#0000;border:0;border-radius:50%;color:inherit;cursor:pointer;display:grid;height:2em;place-items:center;width:2em}.dashboard-freshness button:hover{background:var(--accent-soft);color:var(--accent-dark)}.dashboard-freshness button:disabled svg{animation:dashboard-spin 1s linear infinite}.dashboard-metrics{grid-gap:.75em;display:grid;gap:.75em;grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-metric{align-items:center;background:#fff;border:1px solid #e9e1d1;border-radius:1em;box-shadow:0 5px 18px #3e382d06;display:flex;gap:1em;min-width:0;overflow:hidden;padding:1em 1.15em;position:relative}.dashboard-metric:after{background:var(--metric-soft);border-radius:50%;bottom:-2.2em;content:"";height:6em;position:absolute;right:-1.5em;width:6em}.dashboard-metric-icon{background:var(--metric-soft);border-radius:.8em;color:var(--metric-color);display:grid;flex-shrink:0;height:2.7em;place-items:center;position:relative;width:2.7em;z-index:1}.dashboard-metric>div{grid-gap:.05em .7em;align-items:baseline;display:grid;gap:.05em .7em;grid-template-columns:auto 1fr;min-width:0;position:relative;z-index:1}.dashboard-metric strong{font:600 1.65em/1 var(--font-display);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-metric>div>span{font-size:.76em;font-weight:600;min-width:0}.dashboard-metric small{color:var(--text-light);font-size:.62em;grid-column:1/-1;margin-top:.32em}.dashboard-metric.tone-olive{--metric-color:#536844;--metric-soft:#e6eddb}.dashboard-metric.tone-clay{--metric-color:#a45a43;--metric-soft:#f5e6df}.dashboard-metric.tone-blue{--metric-color:#527181;--metric-soft:#e1edf0}.dashboard-metric.tone-gold{--metric-color:#967238;--metric-soft:#f3ead6}.dashboard-insights{grid-gap:var(--dash-gap);display:grid;gap:var(--dash-gap);grid-template-columns:minmax(0,1.55fr) minmax(280px,.9fr);min-height:0}.dashboard-panel{background:#fff;border:1px solid #e8dfcd;border-radius:clamp(14px,1em,20px);box-shadow:0 8px 28px #3e382d08;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;padding:clamp(12px,1.35em,24px)}.dashboard-panel>header{align-items:flex-start;display:flex;flex-shrink:0;gap:1em;justify-content:space-between;margin-bottom:.8em}.dashboard-panel-kicker{color:var(--accent);font-size:.59em;font-weight:700;letter-spacing:.14em}.dashboard-panel h2{font:500 1.27em/1.15 var(--font-display);margin:.16em 0 0}.dashboard-panel>header>a,.dashboard-panel>header>span{align-items:center;color:var(--accent-dark);display:flex;font-size:.7em;gap:.35em;text-decoration:none;white-space:nowrap}.dashboard-panel>header>a:hover{text-decoration:underline}.dashboard-page .qr-performance{grid-gap:1.4em;display:grid;flex:1 1;gap:1.4em;grid-template-columns:minmax(0,1.85fr) minmax(150px,.85fr);min-height:0}.dashboard-page .qr-performance-chart{height:100%;min-height:72px;min-width:0;padding-bottom:clamp(8px,.65em,14px)}.dashboard-page .qr-performance-ranking{border-left:1px solid var(--border-light);min-height:0;min-width:0;overflow:hidden;padding-left:1.2em}.dashboard-page .qr-performance-ranking h3{align-items:center;color:var(--text-light);display:flex;font-size:clamp(9px,.62em,12px);gap:.4em;letter-spacing:.1em;margin:0 0 .8em;text-transform:uppercase}.dashboard-page .qr-performance-ranking ul{display:flex;flex-direction:column;gap:.35em;height:calc(100% - 1.5em);justify-content:space-evenly;list-style:none;margin:0;padding:0}.dashboard-page .qr-performance-ranking li{min-width:0}.dashboard-page .qr-performance-name{display:block;font-size:clamp(9px,.7em,14px);font-weight:600;margin-bottom:.35em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-page .qr-performance-bar-row{align-items:center;display:flex;gap:.5em}.dashboard-page .qr-performance-bar-track{background:#eee7d8;border-radius:9px;flex:1 1;height:4px;overflow:hidden}.dashboard-page .qr-performance-bar-fill{background:linear-gradient(90deg,#627b50,#8da574);border-radius:9px;display:block;height:100%}.dashboard-page .qr-performance-value{color:var(--text-secondary);font-size:clamp(9px,.65em,13px);min-width:2ch;text-align:right}.dashboard-page .qr-performance-empty{color:var(--text-light);font-size:.75em}.dashboard-page .dashboard-map-container{flex:1 1;margin:-.4em 0 0;min-height:70px;width:100%}.dashboard-page .state-ranking{grid-gap:.25em .7em;border-top:1px solid var(--border-light);display:grid;flex-shrink:0;gap:.25em .7em;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:.65em}.dashboard-page .state-ranking-row{align-items:center;border-radius:.45em;display:flex;gap:.45em;min-width:0;padding:.3em .25em}.dashboard-page .state-ranking-row:hover{background:#f7f5ef}.dashboard-page .state-ranking-position{color:var(--text-light);font:600 .55em var(--font-display)}.dashboard-page .state-ranking-dot{background:#b5654a;border-radius:50%;flex-shrink:0;height:.45em;width:.45em}.dashboard-page .state-ranking-name{flex:1 1;font-size:.68em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-page .state-ranking-count{font-size:.65em}.dashboard-page .state-ranking-empty{color:var(--text-light);font-size:.7em;grid-column:1/-1;padding:.7em;text-align:center}.dashboard-page .loading-container{display:grid;flex:1 1;min-height:70px;place-items:center}.dashboard-page .recharts-cartesian-axis-tick-value{font-size:clamp(9px,.68em,12px)}@keyframes dashboard-spin{to{transform:rotate(1turn)}}@media(min-width:1800px){.dashboard-page{font-size:clamp(14px,min(.77vw,1.7dvh),20px)}.dashboard-hero-actions{max-width:40em}}@media(min-width:601px) and (max-height:680px){.dashboard-page{--dash-gap:7px;--dash-pad:10px;font-size:clamp(9px,1.5dvh,12px)}.dashboard-hero{padding:1.1em 1.7em}.dashboard-hero h1{font-size:2.35em}.dashboard-panel{padding:1em}.dashboard-map-container{margin:-1em 0}.dashboard-metric{padding:.75em 1em}.dashboard-action{padding:.72em}}@media(min-width:601px) and (max-width:1120px){.dashboard-hero-copy{max-width:44%}.dashboard-hero-actions{flex-basis:54%}.dashboard-action{padding:.85em}.dashboard-action-icon{display:none}.dashboard-insights{grid-template-columns:minmax(0,1.2fr) minmax(250px,.9fr)}.dashboard-page .qr-performance{grid-template-columns:1fr}.dashboard-page .qr-performance-ranking{display:none}.dashboard-metric>div{display:block}.dashboard-metric small,.dashboard-metric>div>span{display:block;margin-top:.25em}}@media(min-width:601px) and (max-width:900px){.dashboard-shell{padding:62px 12px 12px}.dashboard-hero{align-items:flex-start}.dashboard-hero-actions{flex-basis:42%;grid-template-columns:1fr}}@media(max-width:600px){.dashboard-page{font-size:14px;height:auto;min-height:100dvh;overflow:visible}.dashboard-shell{display:flex;flex-direction:column;height:auto;padding:72px 18px 24px}.dashboard-hero{flex-direction:column;padding:22px}.dashboard-hero-copy{max-width:none}.dashboard-hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.dashboard-action{padding:10px}.dashboard-action-icon{display:none}.dashboard-action strong{font-size:11px}.dashboard-metrics{grid-template-columns:1fr 1fr}.dashboard-metric{align-items:flex-start}.dashboard-metric>div{display:block}.dashboard-metric small,.dashboard-metric>div>span{display:block;margin-top:5px}.dashboard-insights{grid-template-columns:1fr}.dashboard-panel{min-height:430px}.dashboard-page .qr-performance{grid-template-columns:1fr}.dashboard-page .qr-performance-chart{height:230px}.dashboard-page .qr-performance-ranking{border-left:0;border-top:1px solid var(--border-light);padding:15px 0 0}.dashboard-page .dashboard-map-container{flex:none;height:280px}}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-light);display:flex;flex-direction:column;flex-shrink:0;height:100vh;padding:1.5rem 1rem;position:sticky;top:0;width:240px}.sidebar-brand{align-items:center;display:flex;gap:.6rem;margin-bottom:2.5rem;padding:0 .5rem}.sidebar-brand-mark{align-items:center;background:var(--accent);border-radius:var(--radius-md);color:var(--text-white);display:flex;flex-shrink:0;height:34px;justify-content:center;width:34px}.sidebar-brand-name{color:var(--text-primary);font-size:1.25rem}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.sidebar-link{align-items:center;border-radius:var(--radius-md);color:var(--text-secondary);display:flex;font-size:.9rem;font-weight:500;gap:.75rem;padding:.65rem .85rem;text-decoration:none;transition:var(--transition-fast)}.sidebar-link:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-link.active{background:var(--accent-soft);color:var(--accent-dark);font-weight:600}.sidebar-logout{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-family:inherit;font-size:.9rem;font-weight:500;gap:.75rem;padding:.65rem .85rem;text-align:left;transition:var(--transition-fast)}.sidebar-logout:hover{background:var(--accent-2-soft);color:var(--accent-2-dark)}.sidebar-mobile-toggle{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:none;height:40px;justify-content:center;left:1rem;position:fixed;top:1rem;width:40px;z-index:200}@media (max-width:900px){.sidebar-mobile-toggle{display:flex}.sidebar{box-shadow:var(--shadow-lg);left:0;position:fixed;top:0;transform:translateX(-100%);z-index:150}.sidebar.open{transform:translateX(0)}}.app-shell{display:flex;min-height:100vh}.app-main{flex:1 1;min-width:0}.full-page-loading{align-items:center;background:var(--bg-primary);display:flex;justify-content:center;min-height:100vh}
/*# sourceMappingURL=main.4ebcb7a1.css.map*/