:root{--color-primary:#6a1a70;--color-primary-light:#b36ae2;--color-error-bg:#f8d7da;--color-error-text:#721c24;--color-surface:#f6f6fa;--color-card:#fff;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--shadow-card:0 4px 16px #6a1a7014}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App-header{align-items:center;border-bottom:1px solid #6a1a701f;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.App-header h1{color:#2d2d2d;font-size:1.75rem;font-weight:700;margin:0}.App-main{min-height:60vh}.logout-button{background:#0000;border:1px solid var(--color-primary);border-radius:12px;color:var(--color-primary);cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:background .2s,color .2s}.logout-button:hover{background:var(--color-primary);color:#fff}.auth-form{background:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0 auto;max-width:420px;padding:2rem}.auth-form h2{color:#333;margin-bottom:1.5rem;margin-top:0}.form-group{margin-bottom:1.25rem}.form-group label{color:#444;display:block;font-weight:600;margin-bottom:.5rem}.form-group input{border:1px solid #ddd;border-radius:12px;box-sizing:border-box;font-size:1rem;padding:.75rem 1rem;width:100%}.form-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6a1a7026;outline:none}.token-link{color:var(--color-primary);display:inline-block;font-size:.9rem;margin-top:.5rem}.token-link:hover{text-decoration:underline}.submit-button{background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary-light) 100%);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.85rem;transition:opacity .2s;width:100%}.submit-button:hover:not(:disabled){opacity:.92}.submit-button:disabled{cursor:not-allowed;opacity:.7}.error-message{background:#f8d7da;background:var(--color-error-bg,#f8d7da);border-radius:12px;border-radius:var(--radius-md,12px);color:#721c24;color:var(--color-error-text,#721c24);font-size:.95rem;margin-bottom:1rem;padding:.75rem 1rem}.error-retry{background:#6a1a70;background:var(--color-primary,#6a1a70);border:none;border-radius:8px;border-radius:var(--radius-sm,8px);color:#fff;cursor:pointer;display:inline-block;font-weight:600;margin-top:.5rem;padding:.35rem .75rem}.auth-value-prop,.token-hint{color:#666;font-size:.9rem;margin-bottom:.5rem;margin-top:.35rem}.auth-value-prop{margin-bottom:1rem}.form-error{color:#721c24;color:var(--color-error-text,#721c24);display:block;font-size:.85rem;margin-top:.35rem}.header-actions{align-items:center;display:flex;gap:.75rem}.demo-badge{background:#b36ae2;background:var(--color-primary-light,#b36ae2);border-radius:8px;border-radius:var(--radius-sm,8px);color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.demo-cta{background:#f6f6fa;background:var(--color-surface,#f6f6fa);border-radius:20px;border-radius:var(--radius-lg,20px);margin-top:1.5rem;padding:1rem;text-align:center}.demo-cta p{color:#555;margin-bottom:.75rem}.dashboard-actions{margin-top:1rem}.refresh-button{background:#0000;border:1px solid #6a1a70;border:1px solid var(--color-primary,#6a1a70);border-radius:12px;border-radius:var(--radius-md,12px);color:#6a1a70;color:var(--color-primary,#6a1a70);cursor:pointer;font-weight:600;padding:.5rem 1rem}.refresh-button:hover{background:#6a1a70;background:var(--color-primary,#6a1a70);color:#fff}.demo-section{border-top:1px solid #eee;margin-top:2rem;padding-top:1.5rem;text-align:center}.demo-info{color:#666;font-size:.9rem;margin-top:.5rem}.heart-rate-analysis{padding:0 .5rem}.loading-message{color:var(--color-primary);font-weight:500;padding:1.5rem;text-align:center}.time-selector{margin-bottom:1.5rem}.time-selector h2{color:#333;margin-bottom:1rem;margin-top:0}.time-range-tabs{display:flex;gap:.5rem;margin-bottom:.75rem}.time-range-tabs button{background:#fff;border:1px solid #ddd;border-radius:12px;cursor:pointer;font-weight:500;padding:.6rem 1.25rem;transition:background .2s,border-color .2s}.time-range-tabs button:hover{background:#f8f4f9;border-color:var(--color-primary-light)}.time-range-tabs button.active{background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary-light) 100%);border-color:#0000;color:#fff}.date-range-info{color:#666;font-size:.95rem}.stats-container{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:2rem}.stat-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px #6a1a700f;padding:1.25rem;text-align:center}.stat-value{color:var(--color-primary);font-size:1.75rem;font-weight:700}.stat-label{color:#666;font-size:.85rem;margin-top:.25rem}.chart-container{background:#fff;border-radius:20px;box-shadow:0 4px 16px #6a1a7014;margin-bottom:1.5rem;padding:1.5rem}.chart-container h3{color:#333;margin-bottom:1rem;margin-top:0}.chart-grid{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.pie-chart{min-height:280px}.zone-table table{border-collapse:collapse;width:100%}.zone-table td,.zone-table th{border-bottom:1px solid #eee;padding:.6rem .75rem;text-align:left}.zone-table th{color:#444;font-weight:600}.zone-color-dot{border-radius:4px;display:inline-block;height:12px;margin-right:.5rem;vertical-align:middle;width:12px}.zone-reference{margin-top:1.5rem}.zone-reference h3{color:#333;margin-bottom:1rem}.zone-grid{display:flex;flex-wrap:wrap;gap:.75rem}.zone-card{border-radius:12px;color:#fff;min-width:100px;padding:.75rem 1.25rem;text-align:center}.zone-card .zone-name{font-size:.95rem;font-weight:600}.zone-card .zone-range{font-size:.85rem;opacity:.95}.no-data{background:#fff;border-radius:20px;box-shadow:0 4px 16px #6a1a700f;color:#666;padding:3rem 2rem;text-align:center}.no-data p{margin:.5rem 0}.demo-option{background:#faf7fc;border-radius:16px;border-top:1px solid #eee;box-shadow:0 2px 8px #6a1a700d;margin-top:2rem;padding-top:1.5rem;text-align:center}.demo-option p{color:#555;margin-bottom:.75rem}.demo-button{background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary-light) 100%);border:none;border-radius:24px;box-shadow:0 2px 8px #6a1a7014;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:background .3s,box-shadow .3s}.demo-button:hover{box-shadow:0 4px 16px #6a1a701f;opacity:.92}.demo-banner{background:linear-gradient(90deg,#f8d7da,#f3e6f9);border-radius:16px;box-shadow:0 2px 8px #721c2414;color:#721c24;margin-bottom:1.5rem;padding:1rem;text-align:center}.token-links{display:flex;justify-content:space-between;margin-top:.5rem}.App{background:var(--color-surface);border-radius:24px;box-shadow:0 4px 24px #6a1a700a;margin:0 auto;max-width:1200px;padding:2rem}.custom-tooltip{background:#fff;border:1px solid #eee;border-radius:4px;box-shadow:0 2px 4px #0000001a;padding:.75rem}.custom-tooltip .time{color:#333;font-weight:600;margin-bottom:.25rem}.custom-tooltip .date{color:#666;font-size:.9rem;margin-bottom:.5rem}.custom-tooltip .bpm{font-size:1.1rem;font-weight:600;margin-bottom:.25rem}.custom-tooltip .zone{font-size:.9rem}.zone-legend{background:linear-gradient(90deg,#f8f9fa,#f3e6f9);border-radius:16px;box-shadow:0 2px 8px #6a1a700a;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1.5rem;padding:1.5rem}.zone-legend-item{align-items:center;background:#fff;border-radius:12px;box-shadow:0 1px 4px #6a1a700a;display:flex;font-size:1rem;gap:.75rem;padding:.5rem 1rem}.zone-color{border-radius:4px;height:16px;width:16px}.zone-name{color:#333;font-weight:500}.zone-range{color:#666}@media (max-width:768px){.App{border-radius:12px;padding:.5rem}.App-header{flex-direction:column;gap:1rem;text-align:center}.App-header h1{font-size:1.4rem}.auth-form{padding:1.25rem}.chart-grid{grid-template-columns:1fr}.zone-legend{align-items:flex-start;border-radius:8px;flex-direction:column;gap:.5rem;padding:1rem}.zone-legend-item{border-radius:8px;font-size:.95rem;padding:.5rem .75rem}}
/*# sourceMappingURL=main.c8b056df.css.map*/