@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap";:root{--perpet-offwhite:#efefeb;--perpet-navy:#293c4d;--perpet-navy-soft:#293c4da6;--perpet-navy-faint:#293c4d1f;--perpet-border:#293c4d24;--perpet-card-bg:#fff;--perpet-positive:#3e7a57;--perpet-negative:#b24c3a;--perpet-warning:#b8863a;--font-sans:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--perpet-offwhite);color:var(--perpet-navy);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}button{font-family:inherit}::selection{background:var(--perpet-navy);color:var(--perpet-offwhite)}.app-shell{min-height:100dvh;display:flex}.mobile-topbar{z-index:20;padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));background:var(--perpet-navy);align-items:center;gap:12px;display:none;position:sticky;top:0}.mobile-topbar-logo{height:18px}.mobile-topbar-spacer{flex:1}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;margin:-8px;padding:0;display:flex}.nav-toggle span{background:var(--perpet-offwhite);border-radius:1px;width:20px;height:2px;display:block}.nav-close,.nav-backdrop{display:none}.sidebar{background:var(--perpet-navy);width:248px;color:var(--perpet-offwhite);flex-direction:column;flex-shrink:0;padding:28px 0;display:flex}.sidebar-brand{border-bottom:1px solid #efefeb24;justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 24px 28px;display:flex}.sidebar-brand img{height:20px}.sidebar-nav{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.sidebar-nav a{color:#efefebb8;letter-spacing:.01em;border-left:2px solid #0000;align-items:center;min-height:44px;padding:10px 24px;font-size:13.5px;text-decoration:none;transition:color .15s,background .15s;display:flex}.sidebar-nav a:hover{color:var(--perpet-offwhite);background:#efefeb0d}.sidebar-nav a.active{color:var(--perpet-offwhite);border-left-color:var(--perpet-offwhite);background:#efefeb12;font-weight:500}.sidebar-footer{border-top:1px solid #efefeb24;margin-top:12px;padding:16px 24px 0}.sidebar-user{color:#efefeb99;word-break:break-all;margin-bottom:10px;font-size:12.5px}.sidebar-signout{min-height:40px;color:var(--perpet-offwhite);cursor:pointer;background:0 0;border:1px solid #efefeb47;border-radius:6px;padding:10px 12px;font-size:12.5px}.sidebar-signout:hover{background:#efefeb14}.main-content{flex:1;min-width:0;max-width:1280px;padding:40px 48px 64px}.page-header{margin-bottom:32px}.page-eyebrow{color:var(--perpet-navy-soft);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-size:12px}.page-title{letter-spacing:-.01em;margin:0;font-size:28px;font-weight:600}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:40px;display:grid}.kpi-card{border:1px solid var(--perpet-border);background:var(--perpet-card-bg);border-radius:10px;padding:22px 22px 20px}.kpi-label{color:var(--perpet-navy-soft);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:12.5px}.kpi-value{letter-spacing:-.01em;margin:0 0 6px;font-size:26px;font-weight:600}.kpi-value.muted{color:var(--perpet-navy-soft);font-size:15px;font-weight:500}.kpi-delta{margin:0;font-size:12.5px}.kpi-delta.positive{color:var(--perpet-positive)}.kpi-delta.negative{color:var(--perpet-negative)}.kpi-delta.neutral{color:var(--perpet-navy-soft)}.section-block{margin-bottom:40px}.section-title{margin:0 0 16px;font-size:15px;font-weight:600}.card{border:1px solid var(--perpet-border);background:var(--perpet-card-bg);border-radius:10px}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:480px}.table th{border-bottom:1px solid var(--perpet-border);color:var(--perpet-navy-soft);text-align:left;text-transform:uppercase;letter-spacing:.05em;padding:14px 20px;font-size:11.5px;font-weight:600}.table td{border-bottom:1px solid var(--perpet-border);padding:14px 20px;font-size:14px}.table tr:last-child td{border-bottom:none}.status-pill{border-radius:100px;align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.status-pill.not_connected{color:var(--perpet-warning);background:#b8863a1f}.status-pill.connected{color:var(--perpet-positive);background:#3e7a571f}.status-pill.error{color:var(--perpet-negative);background:#b24c3a1f}.placeholder-card{border:1px dashed var(--perpet-border);background:var(--perpet-card-bg);text-align:center;border-radius:10px;padding:48px}.placeholder-card p{max-width:480px;color:var(--perpet-navy-soft);margin:8px auto 0;font-size:14px;line-height:1.5}.login-shell{background:var(--perpet-navy);justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.login-card{background:var(--perpet-offwhite);border-radius:14px;width:100%;max-width:380px;padding:44px 40px}.login-logo{height:22px;margin-bottom:32px}.login-title{margin:0 0 4px;font-size:18px;font-weight:600}.login-subtitle{color:var(--perpet-navy-soft);margin:0 0 28px;font-size:13px}.field{margin-bottom:16px}.field label{margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.field input{border:1px solid var(--perpet-border);width:100%;font-family:var(--font-sans);background:#fff;border-radius:6px;padding:12px;font-size:16px}.field input:focus{outline:2px solid var(--perpet-navy);outline-offset:1px}.login-submit{background:var(--perpet-navy);width:100%;min-height:44px;color:var(--perpet-offwhite);cursor:pointer;border:none;border-radius:6px;margin-top:6px;padding:11px;font-size:15px;font-weight:600}.login-submit:disabled{opacity:.6;cursor:default}.login-error{color:var(--perpet-negative);background:#b24c3a1a;border-radius:6px;margin-bottom:16px;padding:10px 12px;font-size:13px}.centered-loading{min-height:100dvh;color:var(--perpet-navy-soft);justify-content:center;align-items:center;font-size:14px;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;padding:20px;display:flex}.inline-form .field{min-width:140px;margin-bottom:0}.inline-form .field input,.inline-form .field select{border:1px solid var(--perpet-border);font-family:var(--font-sans);border-radius:6px;width:100%;padding:9px 10px;font-size:14px}.btn-primary{background:var(--perpet-navy);min-height:38px;color:var(--perpet-offwhite);cursor:pointer;border:none;border-radius:6px;padding:9px 18px;font-size:13.5px;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{border:1px solid var(--perpet-border);min-height:38px;color:var(--perpet-navy);cursor:pointer;background:0 0;border-radius:6px;padding:9px 16px;font-size:13.5px;font-weight:500}.form-note{color:var(--perpet-navy-soft);margin:0;padding:0 20px 16px;font-size:12.5px}.form-success{color:var(--perpet-positive);margin:0;padding:10px 20px;font-size:13px}.segmented{border:1px solid var(--perpet-border);border-radius:8px;margin-bottom:16px;display:inline-flex;overflow:hidden}.segmented button{color:var(--perpet-navy-soft);cursor:pointer;border:none;border-right:1px solid var(--perpet-border);background:0 0;padding:8px 16px;font-size:13px;font-weight:500}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--perpet-navy);color:var(--perpet-offwhite)}@media (width<=880px){.app-shell{flex-direction:column}.mobile-topbar{display:flex}.sidebar{z-index:50;width:min(84vw,300px);padding-top:max(20px, env(safe-area-inset-top));padding-bottom:max(20px, env(safe-area-inset-bottom));transition:transform .22s;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:0 0 0 1px #0000000a}.sidebar.open{transform:translate(0)}.nav-close{color:var(--perpet-offwhite);cursor:pointer;background:0 0;border:none;margin:-4px -8px;padding:4px 8px;font-size:24px;line-height:1;display:block}.nav-backdrop.visible{z-index:40;background:#141a2073;display:block;position:fixed;inset:0}.main-content{max-width:100%;padding:24px 20px 48px}.page-title{font-size:22px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:28px}.kpi-card{padding:16px 16px 14px}.kpi-value{font-size:21px}.section-block{margin-bottom:28px}.placeholder-card{padding:28px 20px}.login-card{padding:36px 24px}}@media (width<=420px){.main-content{padding:20px 14px 40px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.kpi-card{padding:14px 14px 12px}.table th,.table td{padding:12px 14px}}
