@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,700;1,500&family=Inter:wght@400;500;600&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--lavender:#a995c7;--lavender-dark:#7a6b9e;--lavender-bg:#ece6f2;--lavender-light:#ede5f7;--lavender-mid:#d5cae8;--rose:#b76e79;--rose-light:#f5dde0;--charcoal:#1e1e1e;--soft-white:#fafafa;--gold:#c8a951;--gold-light:#f5edd5;--cream:#f4eef9;--border:rgba(169,149,199,.12);--border-med:rgba(169,149,199,.28);--border-strong:rgba(169,149,199,.45);--shadow-sm:0 1px 4px rgba(30,0,60,.05),0 4px 16px rgba(30,0,60,.06);--shadow:0 1px 4px rgba(30,0,60,.05),0 6px 24px rgba(30,0,60,.07);--shadow-lg:0 4px 8px rgba(30,0,60,.06),0 16px 48px rgba(30,0,60,.14);--radius-sm:8px;--radius:16px;--radius-lg:20px;--radius-pill:100px;--font-heading:"Playfair Display",Georgia,serif;--font-body:"Inter",system-ui,sans-serif;--sidebar-width:200px;--topbar-height:56px}body,html{height:100%;background:var(--lavender-bg);color:var(--charcoal);-webkit-font-smoothing:antialiased}body,button,html{font-family:var(--font-body)}button{cursor:pointer}input,select,textarea{font-family:var(--font-body)}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--lavender-mid);border-radius:3px}.h1{font-family:var(--font-heading);font-size:28px;font-weight:700}.h2{font-size:22px}.h2,.h3{font-family:var(--font-heading);font-weight:500}.h3{font-size:17px}.body{font-size:15px;line-height:1.6}.small{font-size:13px}.label{font-size:12px;font-weight:600;letter-spacing:.2px}.muted{color:rgba(30,30,30,.45)}.italic-lav{font-style:italic;color:var(--lavender-dark)}.btn-primary{background:#1e1e1e;color:#fafafa;border:none;border-radius:10px;padding:11px 22px;font-size:13px;font-weight:600;letter-spacing:.2px;transition:opacity .15s,transform .1s;display:inline-flex;align-items:center;gap:6px}.btn-primary:hover{opacity:.82}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:#fff;color:#1e1e1e;border:1.5px solid rgba(30,30,30,.14);border-radius:10px;padding:10px 22px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s}.btn-secondary:hover{background:var(--lavender-light);border-color:var(--lavender)}.btn-ghost{background:none;border:none;color:var(--charcoal);padding:6px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background .15s}.btn-ghost:hover{background:var(--lavender-light)}.input-field{width:100%;background:#fff;border:1.5px solid rgba(169,149,199,.25);border-radius:10px;padding:11px 14px;font-size:14px;color:#1e1e1e;outline:none;transition:border-color .2s,box-shadow .2s}.input-field::placeholder{color:rgba(30,30,30,.32)}.input-field:focus{border-color:var(--lavender);box-shadow:0 0 0 3px rgba(169,149,199,.12)}.input-field.error-state{border-color:#e8a0a0}.card{background:#fff;border:1px solid rgba(169,149,199,.1);border-radius:var(--radius);box-shadow:var(--shadow)}.session-pill{display:inline-flex;align-items:center;background:var(--lavender-light);border:1px solid var(--lavender);border-radius:var(--radius-pill);padding:5px 14px;font-size:12px;font-weight:500;white-space:nowrap}.pill-opt{border:1px solid var(--lavender-mid);border-radius:var(--radius-pill);padding:7px 16px;font-size:13px;font-weight:500;color:var(--charcoal);transition:all .15s;cursor:pointer}.pill-opt,.pill-opt.active{background:var(--soft-white)}.pill-opt.active{border-color:var(--gold);color:var(--gold);font-style:italic}.status-pill{display:inline-flex;align-items:center;border-radius:var(--radius-pill);padding:6px 16px;font-size:13px;font-weight:500;cursor:pointer}.status-overdue{background:var(--lavender);color:#fff}.status-new{background:var(--gold);color:#fff}.status-routine{background:var(--rose);color:#fff}.accordion{background:var(--soft-white);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.accordion-trigger{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;cursor:pointer;font-size:14px;font-weight:500;background:none;border:none;width:100%;text-align:left;color:var(--charcoal);transition:background .15s}.accordion-trigger:hover{background:rgba(169,149,199,.05)}.accordion-body{padding:10px 18px 16px;border-top:1px solid var(--border)}.overlay-backdrop{position:fixed;inset:0;background:rgba(80,50,120,.42);z-index:200;animation:fadeIn .18s ease}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--soft-white);border-radius:20px 20px 0 0;z-index:201;padding:18px 24px 40px;box-shadow:0 -6px 40px rgba(169,149,199,.22);animation:slideUp .26s cubic-bezier(.34,1.4,.64,1);max-height:80vh;overflow-y:auto}.modal-wrap{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.modal-box{position:relative;z-index:1;background:var(--soft-white);border-radius:var(--radius-lg);padding:28px 28px 24px;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.step-track{height:3px;background:var(--lavender-mid);border-radius:2px;position:relative}.step-fill{height:100%;background:var(--lavender);border-radius:2px;transition:width .4s ease}.dropzone{background:var(--lavender-light);border:1.5px dashed var(--lavender);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:background .18s,border-color .18s;padding:44px 24px}.dropzone.dragging,.dropzone:hover{background:rgba(169,149,199,.2);border-color:var(--lavender-dark)}.sidebar{width:var(--sidebar-width);background:#fff;border-right:1px solid rgba(169,149,199,.14);display:flex;flex-direction:column;height:100vh;position:fixed;left:0;top:0;z-index:30;overflow-y:auto}.sidebar-logo{padding:22px 20px 16px;border-bottom:1px solid var(--border);font-family:var(--font-heading);font-size:20px}.sidebar-section-label{padding:16px 20px 6px;font-size:11px;font-weight:600;color:rgba(30,30,30,.38);letter-spacing:.5px;text-transform:uppercase}.sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 20px;font-size:14px;font-weight:500;color:var(--charcoal);background:none;border:none;width:100%;text-align:left;cursor:pointer;border-radius:0;transition:background .14s}.sidebar-item.active,.sidebar-item:hover{background:var(--lavender-light)}.sidebar-item.active{color:var(--lavender-dark)}.sidebar-item.danger{color:var(--rose)}.sidebar-session-input{background:var(--lavender-bg);border:1px solid var(--border-med);border-radius:var(--radius-pill);padding:8px 14px;font-size:13px;color:rgba(30,30,30,.5);outline:none;width:calc(100% - 40px);margin:4px 20px 8px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--border);padding:12px 0 8px}.sidebar-user{gap:10px;padding:10px 20px;cursor:pointer}.sidebar-avatar,.sidebar-user{display:flex;align-items:center}.sidebar-avatar{width:34px;height:34px;border-radius:50%;background:var(--lavender-light);justify-content:center;flex-shrink:0;overflow:hidden}.main-with-sidebar{margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column}.topbar{height:var(--topbar-height);background:#fff;border-bottom:1px solid rgba(169,149,199,.15);padding:0 28px;gap:8px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar,.topbar-breadcrumb{display:flex;align-items:center}.topbar-breadcrumb{gap:6px;font-size:14px;color:rgba(30,30,30,.5);flex:1 1}.topbar-breadcrumb .active-crumb{color:var(--charcoal);font-weight:500}.stat-bar-row{display:flex;gap:32px;background:var(--soft-white);border:1px solid var(--border);border-radius:var(--radius);padding:18px 24px;margin-bottom:20px}.stat-col{flex:1 1}.stat-bar-track{height:6px;background:var(--lavender-light);border-radius:3px;margin:6px 0 4px}.stat-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.client-card{background:var(--soft-white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:box-shadow .18s,transform .15s}.client-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.client-thumb{background:var(--lavender-light);height:140px;display:flex;align-items:center;justify-content:center}.client-info{padding:12px 14px}.session-detail-pill{display:inline-flex;align-items:center;background:transparent;border:1px solid var(--lavender);border-radius:var(--radius-pill);padding:3px 12px;font-size:11px;font-weight:600;color:var(--lavender-dark);margin:4px 0 6px;cursor:pointer;transition:background .14s}.session-detail-pill:hover{background:var(--lavender-light)}.sym-score{position:absolute;font-weight:700}.metric-val,.sym-score{font-family:var(--font-heading);color:var(--gold)}.metric-val{font-style:italic}.img-preview{background:var(--lavender-light);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;overflow:hidden}.tab-group{display:flex;gap:8px}.tab-btn{padding:7px 16px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;letter-spacing:.2px;border:1.5px solid rgba(169,149,199,.22);background:#fff;color:rgba(30,30,30,.55);cursor:pointer;transition:all .14s}.tab-btn.active{background:#1e1e1e;color:#fafafa;border-color:#1e1e1e}.error-box{background:#fff0ee;border:1px solid #e8a0a0;border-radius:10px;padding:11px 14px;gap:9px;color:#c0392b;font-size:13px;font-style:italic}.error-box,.sticky-footer{display:flex;align-items:center}.sticky-footer{position:-webkit-sticky;position:sticky;bottom:0;background:var(--lavender-bg);border-top:1px solid var(--border);padding:14px 28px;justify-content:space-between;gap:12px;z-index:10}.legend-box{background:hsla(0,0%,100%,.93);border-radius:var(--radius-sm);padding:8px 12px;position:absolute;top:10px;right:10px;box-shadow:var(--shadow-sm)}.legend-row{display:flex;align-items:center;gap:7px;font-size:11px;margin-bottom:3px}.legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.zoom-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--lavender);background:var(--soft-white);color:var(--lavender);font-size:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .14s}.tips-box,.zoom-btn:hover{background:var(--lavender-light)}.tips-box{border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px}.tips-rule{flex:1 1;height:1px;background:var(--border-med)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width:768px){body,html{overflow-x:hidden;max-width:100vw}.h1{font-size:24px!important}.h2{font-size:19px!important}.body{font-size:14px!important}.sidebar{display:none}.mobile-sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--lavender-bg);z-index:300;display:flex;flex-direction:column;box-shadow:4px 0 30px rgba(169,149,199,.28);animation:slideRight .24s ease}@keyframes slideRight{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.main-with-sidebar{margin-left:0;padding-top:56px}.topbar{display:none}.mobile-header{display:flex!important;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--lavender-bg);position:fixed;top:0;left:0;right:0;z-index:20}.page-pad{padding:16px 16px 100px!important}.upload-outer{padding:16px 12px 80px!important}.upload-card-inner{padding:24px 16px!important}.access-inner{padding:0 16px!important}.error-box{word-break:break-word}input,select,textarea{font-size:16px!important}.metrics-inner{padding:12px!important}.metrics-inner .card{padding:20px 16px!important}.metrics-row{display:grid!important;grid-template-columns:1fr 1fr!important;grid-gap:12px!important;gap:12px!important;border-right:none!important}.metrics-row>*{padding-right:0!important;margin-right:0!important;border-right:none!important;border-bottom:1px solid var(--border);padding-bottom:12px}.metrics-row>:last-child{grid-column:1/-1;border-bottom:none}.desktop-grid,.map-grid{grid-template-columns:1fr!important}.stat-bar-row{flex-direction:column;gap:16px}.stat-cards-grid{grid-template-columns:repeat(2,1fr)!important}.client-grid{grid-template-columns:1fr!important}.kpi-grid{grid-template-columns:repeat(2,1fr)!important}.dash-mid-row{grid-template-columns:1fr!important}.progress-sum-grid{grid-template-columns:repeat(2,1fr)!important}.progress-charts-grid,.report-grid{grid-template-columns:1fr!important}.report-grid{padding:12px 16px 90px!important;gap:12px!important}.zone-charts-row{flex-direction:column!important;gap:16px!important}.zone-charts-row>*{flex:none!important;width:100%!important}.sticky-footer{padding:12px 16px;gap:10px}.sticky-footer .btn-primary,.sticky-footer .btn-secondary{flex:1 1;justify-content:center}}@media (min-width:769px){.mobile-header,.mobile-only{display:none!important}}.mobile-header{display:none}.hamburger{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:4px}.ham-bar{width:22px;height:2px;background:var(--charcoal);border-radius:2px}