:root{--accent:#5b6b7f;--bg:#f4f5f7;--panel:#fff;--text:#1d2330;--muted:#6b7280;--line:#e2e5ea;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit;cursor:pointer}h1{margin:0 0 .2rem;font-size:1.5rem}h2{margin:0 0 .5rem;font-size:1.15rem}.muted{color:var(--muted);font-size:.9rem}.sub{color:var(--muted);margin-bottom:1rem}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:600}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{color:var(--text);border:1px solid var(--line);background:#fff;border-radius:6px;padding:.35rem .8rem}.btn-secondary:hover{border-color:var(--accent)}.btn-secondary:disabled{opacity:.5;cursor:default}.link{color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:.45rem;padding:0;display:inline-flex}.link:hover{text-decoration:underline}.dot{border-radius:50%;flex:none;width:.7rem;height:.7rem;display:inline-block}.badge{color:#fff;border-radius:999px;padding:.1rem .6rem;font-size:.8rem;font-weight:600}.banner{color:#8a1c1c;background:#fdecea;border:1px solid #f5c2c0;border-radius:6px;margin-bottom:.8rem;padding:.5rem .8rem}.login{place-items:center;min-height:100vh;display:grid}.login-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:1rem;width:min(360px,92vw);padding:2rem;display:flex}.login-box label{flex-direction:column;gap:.3rem;font-weight:600;display:flex}.login-box input{font:inherit;border:1px solid var(--line);border-radius:6px;padding:.5rem .6rem}.login-error{color:#c62828;font-weight:600}.app{flex-direction:column;height:100vh;display:flex}.header{background:var(--panel);border-bottom:3px solid var(--accent);align-items:center;gap:.8rem;padding:.6rem 1rem;display:flex}.logo-box{border:2px dashed var(--accent);color:var(--accent);letter-spacing:.08em;border-radius:6px;align-self:flex-start;padding:.25rem .7rem;font-weight:700}.header .logo-box{align-self:center}.brand-name{font-size:1.25rem;font-weight:700}.header-spacer{flex:1}.header-note{color:var(--muted);font-size:.85rem}.body{flex:1;grid-template-columns:250px minmax(0,1fr) 390px;min-height:0;display:grid}.nav{background:var(--panel);border-right:1px solid var(--line);padding:.6rem .4rem;overflow-y:auto}.nav-item{text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:5px;align-items:center;gap:.45rem;padding:.3rem .5rem;display:flex}.nav-item:hover{background:#eef0f3}.nav-item.active{background:var(--accent);color:#fff}.nav-root{margin-bottom:.3rem;font-weight:700}.nav-group{margin-bottom:.5rem}.nav-customer{font-size:.92rem;font-weight:700}.nav-site{color:#374151;padding-left:1rem;font-size:.92rem}.nav-point{padding-left:1.8rem;font-size:.9rem}.data{padding:1rem 1.4rem 2rem;overflow-y:auto}.crumbs{margin-bottom:.8rem;font-size:.9rem}.crumb{color:var(--accent);background:0 0;border:none;padding:0}.crumb:hover{text-decoration:underline}.crumb.current{color:var(--text);font-weight:600}.crumb-sep{color:var(--muted);margin:0 .4rem}.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin:1rem 0;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-top:5px solid var(--line);border-radius:8px;padding:.9rem 1rem}.card-title{color:var(--text);text-align:left;background:0 0;border:none;padding:0;font-size:1.1rem;font-weight:700}.card-title:hover{text-decoration:underline}.card-sub{color:var(--muted);margin-bottom:.6rem;font-size:.88rem}.card-points{margin:0;padding:0;list-style:none}.card-points li{border-bottom:1px solid #f0f1f3;justify-content:space-between;padding:.2rem 0;display:flex}.tiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem;margin-bottom:1.2rem;display:grid}.tile{text-align:left;border:2px solid var(--line);color:var(--text);border-radius:8px;flex-direction:column;gap:.3rem;padding:.8rem .9rem;display:flex}.tile:hover{box-shadow:0 2px 8px #0000001f}.tile-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.2rem;display:flex}.tile-name{font-size:1.05rem;font-weight:700}.tile-row{justify-content:space-between;display:flex}.tile-label{color:#374151}.tile-value{font-variant-numeric:tabular-nums;font-weight:700}.tile-foot{justify-content:space-between;align-items:center;margin-top:.3rem;display:flex}.now-row{flex-wrap:wrap;gap:.8rem;margin-bottom:1rem;display:flex}.now{border:2px solid var(--line);border-radius:8px;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:160px;padding:.6rem .9rem;display:flex}.now-label{color:#374151;font-size:.9rem}.now-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.rangebar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.8rem;display:flex}.custom-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.chart{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:.9rem;padding:.6rem .8rem .2rem}.chart-title{margin-bottom:.2rem;font-weight:700}.chart-canvas{cursor:crosshair;width:100%}.alerts{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-top:1rem;padding:.8rem 1rem}.alerts ul{margin:0;padding:0;list-style:none}.alerts li{border-bottom:1px solid #f0f1f3;grid-template-columns:1fr auto;gap:.1rem 1rem;padding:.5rem 0;display:grid}.alerts li>span:not(.alert-state){grid-column:1}.alert-state{color:#2e7d32;grid-area:1/2/span 3;align-self:center;font-weight:700}.alert-state.on{color:#c62828}.assistant{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.assistant-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.7rem .9rem;display:flex}.assistant-title{font-size:1.1rem;font-weight:700}.assistant-sub{color:var(--muted);font-size:.85rem}.assistant-list{flex-direction:column;flex:1;gap:.7rem;padding:.8rem .9rem;display:flex;overflow-y:auto}.assistant-empty p{color:var(--muted);margin-top:0}.suggestions{flex-direction:column;gap:.45rem;display:flex}.suggestion{text-align:left;border:1px solid var(--line);color:var(--text);background:#f7f8fa;border-radius:8px;padding:.5rem .7rem}.suggestion:hover{border-color:var(--accent)}.msg{border-radius:10px;max-width:94%;padding:.55rem .75rem}.msg-user{background:var(--accent);color:#fff;align-self:flex-end}.msg-assistant{background:#f2f4f7;align-self:flex-start}.msg-text{white-space:pre-wrap}.msg-error{color:#c62828;margin-top:.3rem;font-weight:600}.rich p{margin:0 0 .5rem}.rich p:last-child,.rich ul:last-child,.rich ol:last-child{margin-bottom:0}.rich ul,.rich ol{margin:0 0 .5rem;padding-left:1.2rem}.chips{flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem;display:flex}.chip{border:1px solid var(--line);color:#374151;background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:.1rem .55rem;font-size:.8rem;display:inline-flex}.chip-done .chip-icon{color:#2e7d32}.chip-error{color:#c62828;border-color:#f5c2c0}.spinner{border:2px solid #cbd1d9;border-top-color:var(--accent);border-radius:50%;width:.7rem;height:.7rem;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.typing{gap:.25rem;padding:.2rem 0;display:flex}.typing span{background:#9aa3af;border-radius:50%;width:.45rem;height:.45rem;animation:1.2s ease-in-out infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.3}40%{opacity:1}}.assistant-input{border-top:1px solid var(--line);gap:.5rem;padding:.7rem .9rem;display:flex}.assistant-input textarea{font:inherit;resize:none;border:1px solid var(--line);border-radius:8px;flex:1;padding:.45rem .6rem}.assistant-input textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}
