:root{--ep-navy-900:#0B2545;--ep-navy-700:#14487F;--ep-navy-500:#1C6DBA;--ep-navy-100:#DCEAF8;--ep-ember-500:#E8641A;--ep-ember-300:#F79C5C;--ep-ember-50:#FDF0E7;--ep-steel-900:#161B22;--ep-steel-700:#2A323C;--ep-steel-600:#48525E;--ep-steel-400:#858E9A;--ep-steel-300:#C3CBD5;--ep-steel-100:#F1F4F8;--ep-steel-50:#F7F9FC;--ep-white:#FFFFFF;--ep-critical:#C62828;--ep-critical-bg:#FCEBEA;--ep-high:#EF6C00;--ep-high-bg:#FDF0E4;--ep-normal:#1C6DBA;--ep-success:#2E7D32;--ep-success-bg:#E8F3E9;--ep-warning:#F9A825;--ep-info:#0277BD;--ep-neutral:#6B7480;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:999px;--e1:0 1px 2px rgba(10,31,51,.06);--e2:0 4px 12px rgba(10,31,51,.1);--e3:0 8px 24px rgba(10,31,51,.14);--tap:48px;--nav-h:64px;--bar-h:56px;--demo-h:22px;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ep-surface-card: #FFFFFF;--ep-surface-card-subtle: #F7F9FC;--ep-surface-glass-appbar: rgba(11, 37, 69, .92);--ep-surface-glass-nav: rgba(255, 255, 255, .82);--ep-border-subtle: rgba(20, 72, 127, .14);--ep-border-strong: rgba(20, 72, 127, .22);--ep-border-hover: rgba(28, 109, 186, .42);--ep-border-highlight: rgba(255, 255, 255, .85);--ep-shadow-tactile: inset 0 1px 0 rgba(255, 255, 255, .65), 0 1px 2px rgba(11, 37, 69, .06), 0 3px 8px rgba(11, 37, 69, .08), 0 10px 22px -8px rgba(11, 37, 69, .12);--ep-shadow-hover: inset 0 1px 0 rgba(255, 255, 255, .75), 0 2px 6px rgba(11, 37, 69, .1), 0 12px 26px -6px rgba(11, 37, 69, .18), 0 22px 46px -14px rgba(11, 37, 69, .18);--ep-shadow-elevated: inset 0 1px 0 rgba(255, 255, 255, .7), 0 6px 16px -4px rgba(11, 37, 69, .14), 0 18px 40px -10px rgba(11, 37, 69, .22);--ep-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px rgba(28, 109, 186, .55)}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--ep-steel-100);color:var(--ep-steel-900);font-size:14px;line-height:20px;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:16px}h1,h2,h3,p{margin:0}.mono{font-family:var(--mono);letter-spacing:-.2px}.h1{font-size:24px;line-height:30px;font-weight:700}.h2{font-size:20px;line-height:26px;font-weight:600}.h3{font-size:17px;line-height:24px;font-weight:600}.bodyL{font-size:16px;line-height:24px}.label{font-size:13px;line-height:18px;font-weight:600}.cap{font-size:12px;line-height:16px;font-weight:500;color:var(--ep-steel-600)}.sec-head{font-size:12px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ep-navy-700);display:inline-flex;align-items:center;gap:9px}.sec-head:before{content:"";width:16px;height:2px;border-radius:2px;flex:0 0 auto;background:linear-gradient(90deg,var(--ep-ember-500),rgba(232,100,26,.12))}.app{height:100%;height:100dvh;display:flex;flex-direction:column;max-width:520px;margin:0 auto;background:var(--ep-steel-100);position:relative;overflow:hidden}.scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px 24px}.appbar{min-height:var(--bar-h);height:calc(var(--bar-h) + env(safe-area-inset-top));background:var(--ep-navy-900);background:var(--ep-surface-glass-appbar);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#fff;display:flex;align-items:center;gap:8px;padding:env(safe-area-inset-top) max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));flex-shrink:0;position:relative;z-index:30;border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 2px 8px #0a1f332e}.appbar .iconbtn{flex:0 0 auto;position:relative;z-index:2;margin:0}.appbar .title{flex:1 1 auto;min-width:0;overflow:hidden}.appbar>*{flex-shrink:0}.app{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.appbar .title{font-size:17px;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar .sub{font-size:12px;opacity:.72;font-weight:400}.iconbtn{min-width:var(--tap);min-height:var(--tap);flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);font-size:20px;overflow:visible}.demostrip{height:var(--demo-h);background:var(--ep-steel-300);color:var(--ep-steel-700);font-size:10px;font-weight:700;letter-spacing:.8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.card{background:var(--ep-white);background:var(--ep-surface-card);border-radius:var(--r-md);box-shadow:var(--ep-shadow-tactile);border:1px solid var(--ep-border-subtle);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.row{display:flex;align-items:center;gap:12px;padding:14px 16px;width:100%;text-align:left;min-height:var(--tap);background:transparent;border-bottom:1px solid var(--ep-steel-300);transition:background-color .16s ease}.row:last-child{border-bottom:none}.row:active{background:#14487f0f}.rail{width:4px;align-self:stretch;flex-shrink:0;border-radius:2px}.btn{min-height:52px;border-radius:var(--r-sm);font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:0 16px;letter-spacing:.2px;transition:all .14s cubic-bezier(.2,0,0,1)}.btn-primary{background:linear-gradient(180deg,#F06E24 0%,var(--ep-ember-500) 100%);color:#fff;box-shadow:0 2px 6px #e8641a52,inset 0 1px #ffffff3d;border:1px solid #D25510}.btn-primary:active{background:#cc5615;box-shadow:0 1px 3px #e8641a3d}.btn-primary:disabled{background:var(--ep-steel-300);color:var(--ep-steel-400);box-shadow:none;border-color:transparent}.btn-secondary{background:var(--ep-white);background:#ffffffeb;color:var(--ep-navy-700);border:1.5px solid var(--ep-steel-300);box-shadow:0 1px 2px #0a1f330a}.btn-secondary:active{background:var(--ep-steel-100)}.btn-danger{background:linear-gradient(180deg,#D32F2F 0%,var(--ep-critical) 100%);color:#fff;box-shadow:0 2px 6px #c628284d,inset 0 1px #fff3;border:1px solid #B71C1C}.btn-sm{min-height:44px;font-size:14px}.chip{min-height:44px;padding:0 14px;border-radius:var(--r-pill);border:1.5px solid var(--ep-border-subtle);background:var(--ep-white);font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;box-shadow:0 1px 2px #0b25450d;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}.chip.on{background:var(--ep-navy-700);border-color:var(--ep-navy-700);color:#fff;box-shadow:0 3px 10px #14487f4d}.chiprow{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chiprow::-webkit-scrollbar{display:none}.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.4px;box-shadow:0 1px 2px #0b254514;border:1px solid rgba(11,37,69,.12)}.code{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ep-steel-600);background:var(--ep-steel-100);padding:2px 6px;border-radius:4px}.field{width:100%;min-height:var(--tap);border:1.5px solid var(--ep-steel-300);border-radius:var(--r-sm);padding:12px 14px;background:var(--ep-white);background:#fffffff2;color:var(--ep-steel-900);transition:border-color .15s ease,box-shadow .15s ease}.field:focus{outline:none;border-color:var(--ep-navy-500);box-shadow:0 0 0 3px #1c6dba2e}textarea.field{min-height:96px;resize:vertical;line-height:22px}.bottomnav{height:var(--nav-h);background:var(--ep-white);background:var(--ep-surface-glass-nav);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border-top:1px solid var(--ep-border-subtle);display:flex;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom);box-shadow:inset 0 1px #fff9,0 -10px 28px -14px #0b254538}.navitem{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:600;color:var(--ep-steel-400);position:relative;min-height:var(--tap);border-radius:10px;margin:4px;transition:color .16s ease,background-color .16s ease,transform .16s ease}.navitem .nav-i{font-size:20px;line-height:1;transition:transform .17s cubic-bezier(.2,.7,.2,1)}.navitem:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,var(--ep-navy-500),var(--ep-navy-700));transition:width .2s cubic-bezier(.2,.7,.2,1)}.navitem .nav-t{transition:font-weight .12s ease}.navitem.on{color:var(--ep-navy-700)}.navitem.on:after{width:26px}.navitem.on .nav-i{transform:translateY(-1px) scale(1.06)}.navitem.on .nav-t{font-weight:700}.navitem:active{transform:scale(.95)}.navbadge{position:absolute;top:5px;left:50%;margin-left:6px;background:var(--ep-critical);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 1px 3px #0b254547}.navbadge.ember{background:var(--ep-ember-500)}.fab{position:absolute;right:16px;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:28px;background:linear-gradient(135deg,#F06E24 0%,var(--ep-ember-500) 100%);color:#fff;box-shadow:0 4px 16px #e8641a5c,0 2px 4px #0a1f331f;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:26px;z-index:20;transition:transform .15s ease,box-shadow .15s ease}.fab:active{transform:scale(.94)}.banner{display:flex;gap:0;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--ep-shadow-tactile)}.emergency{background:var(--ep-critical-bg);border:1px solid #F3C9C6}.offlinebar{background:var(--ep-steel-300);color:var(--ep-steel-700);font-size:13px;font-weight:600;padding:7px 16px;display:flex;align-items:center;gap:8px;flex-shrink:0}.sheetwrap{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a1f338c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:40;display:flex;align-items:flex-end}.sheet{background:var(--ep-white);background:#fffffff5;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0;border-top:1px solid rgba(255,255,255,.8);box-shadow:var(--e3);max-height:88%;overflow-y:auto;padding:8px 16px calc(20px + env(safe-area-inset-bottom))}.handle{width:36px;height:4px;background:var(--ep-steel-300);border-radius:2px;margin:8px auto 12px}.prog{height:6px;background:var(--ep-steel-300);border-radius:3px;overflow:hidden}.prog>i{display:block;height:100%;background:var(--ep-info);border-radius:3px;transition:width .3s}.stepbar{height:6px;background:var(--ep-steel-300);border-radius:3px;overflow:hidden;margin-bottom:14px}.stepbar>i{display:block;height:100%;background:var(--ep-ember-500);transition:width .3s}.stack{display:flex;flex-direction:column;gap:12px}.stack-sm{display:flex;flex-direction:column;gap:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.spacer{flex:1}.ep-home{width:100%}.ep-kpi-row{display:flex;flex-wrap:wrap;gap:10px;padding:12px 14px 16px}.ep-kpi-tile{flex:1 1 90px;min-width:0;display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;padding:13px 14px 12px;border-radius:12px;background:var(--ep-surface-card);border:1px solid var(--ep-border-subtle);box-shadow:var(--ep-shadow-tactile)}.ep-kpi-tile__value{font-size:26px;line-height:1.05;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.ep-kpi-tile__label{font-size:11px;font-weight:600;line-height:1.3;letter-spacing:.02em;color:var(--ep-steel-600)}.ep-quick{min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border-radius:var(--r-md);font-weight:600}.ep-quick__icon{font-size:24px;font-weight:700;line-height:1}.ep-quick--accent{border-color:var(--ep-ember-500);border-width:1.5px;box-shadow:var(--ep-shadow-tactile),inset 0 0 0 1px #e8641a1a}.toast{position:absolute;left:16px;right:16px;bottom:calc(var(--nav-h) + 20px);background:var(--ep-steel-900);color:#fff;padding:14px 16px;border-radius:var(--r-sm);box-shadow:var(--e3);z-index:50;font-size:14px}@keyframes ep-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ep-rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes ep-slide-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}@keyframes ep-pop-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.ep-fade{animation:ep-fade-in .18s cubic-bezier(.2,0,0,1) both}.ep-rise{animation:ep-rise-in .26s cubic-bezier(.2,0,0,1) both}.ep-slide{animation:ep-slide-in .22s cubic-bezier(.2,0,0,1) both}.ep-pop{animation:ep-pop-in .2s cubic-bezier(.2,0,0,1) both}.scroll{animation:ep-fade-in .2s ease-out both}.btn:active:not(:disabled){transform:scale(.985);transition:transform 90ms ease-out}.btn:disabled{opacity:.7}.row:active{transition:background 90ms ease-out}.card,button.card,.row,.navitem,.btn,.fab,.chip,.ep-kpi-tile,.ep-cc-actioncard,.ep-cc-actrow{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease,filter .18s ease}:where(button,a,.row,.navitem,.card,.ep-kpi-tile,.ep-cc-actioncard,.ep-cc-actrow):focus-visible{outline:none;box-shadow:var(--ep-ring);border-color:var(--ep-navy-500);position:relative;z-index:1}@media (hover:hover) and (pointer:fine){.card:hover,button.card:hover,.ep-kpi-tile:hover,.ep-cc-actioncard:hover{transform:translateY(-2px);box-shadow:var(--ep-shadow-hover);border-color:var(--ep-border-hover)}.ep-kpi-tile:hover{transform:translateY(-2px) scale(1.012)}.row:hover,.ep-cc-actrow:hover{background-color:#1c6dba0f}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 4px 14px #e8641a66,inset 0 1px #ffffff47}.btn-secondary:hover{transform:translateY(-1px);border-color:var(--ep-navy-500);background:#fff;box-shadow:0 3px 10px #0b25451a}.btn-danger:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 4px 14px #c628285c,inset 0 1px #ffffff38}.chip:hover:not(.on){border-color:var(--ep-navy-500);box-shadow:0 2px 8px #14487f29}.navitem:hover{color:var(--ep-navy-700);background-color:#14487f0f}.navitem:hover .nav-i{transform:translateY(-1px)}.fab:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 10px 24px #e8641a70,0 4px 10px #0b25452e}}.card:active:not(:disabled),button.card:active:not(:disabled),.ep-kpi-tile:active:not(:disabled),.ep-cc-actioncard:active:not(:disabled){transform:translateY(0) scale(.985);box-shadow:var(--ep-shadow-tactile);transition-duration:90ms}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.card:hover,button.card:hover,.ep-kpi-tile:hover,.ep-cc-actioncard:hover,.btn:hover,.fab:hover,.navitem:hover .nav-i,.navitem:active,.navitem.on .nav-i{transform:none!important}}.ep-cc-cards{display:block}.ep-cc-table{display:none}@media (min-width: 760px){.ep-cc-cards{display:none}.ep-cc-table{display:block}}.ep-cc-xscroll,.chiprow,[style*="overflowX: auto"],[style*="overflow-x: auto"]{touch-action:pan-y;overscroll-behavior-x:contain}@media (min-width: 760px){.app{max-width:760px}.scroll{padding:20px 24px 28px}.sheetwrap{align-items:center;justify-content:center}.sheet{max-width:640px;border-radius:var(--r-lg);max-height:86%}}@media (min-width: 1024px){.app{max-width:1200px}.scroll{padding:24px 24px 36px}.ep-home{max-width:900px;margin-inline:auto}.ep-home>.h1{font-size:28px;line-height:34px}.ep-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.grid2.ep-quick-grid{gap:14px}.bottomnav{max-width:640px;margin:0 auto;width:100%;border-left:1px solid var(--ep-border-subtle);border-right:1px solid var(--ep-border-subtle);border-radius:14px 14px 0 0}.fab{right:calc((100% - 900px)/2 + 8px)}}@media (min-width: 1280px){.app{max-width:1360px}.scroll{padding:28px 28px 40px}.ep-home{max-width:1000px}.fab{right:calc((100% - 1000px)/2 + 8px)}}@media (min-width: 1440px){.app{max-width:1480px}.scroll{padding:28px 32px 44px}.ep-home{max-width:1100px}.fab{right:calc((100% - 1100px)/2 + 8px)}}@media (min-width: 1024px){.ep-cc-kpis{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.ep-cc-kpis>button{flex:none!important;min-width:0!important}}html,body{overflow-x:hidden}.scroll{overscroll-behavior-y:contain}.ep-energy-field{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}.app{background:transparent}.scroll{position:relative;z-index:1}.bottomnav{position:relative;z-index:20}@media print{.ep-energy-field{display:none!important}}@media (prefers-reduced-motion: reduce){.ep-energy-field{animation:none!important;transition:none!important}}
