.integrations-home{display:flex;flex-direction:column;gap:1.5rem}.integ-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.icard-online,.ibadge-online,.sdot-online,.chip-integ-online,.tab-dot-online{--st: #2f8f5b;--st-bg: rgba(47, 143, 91, .12)}.icard-delayed,.ibadge-delayed,.sdot-delayed,.chip-integ-delayed,.tab-dot-delayed{--st: #c98410;--st-bg: rgba(201, 132, 16, .13)}.icard-offline,.ibadge-offline,.sdot-offline,.chip-integ-offline,.tab-dot-offline{--st: #b0573f;--st-bg: rgba(176, 87, 63, .11)}.icard-pending,.ibadge-pending,.sdot-pending,.chip-integ-pending,.tab-dot-pending{--st: #5b7ba6;--st-bg: rgba(91, 123, 166, .12)}.icard-empty,.ibadge-empty,.sdot-empty,.chip-integ-empty,.tab-dot-empty{--st: #8b9692;--st-bg: rgba(139, 150, 146, .12)}.icards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr));gap:1.25rem}.icard{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;gap:.55rem;text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:var(--paper-card);border:1px solid var(--border);border-radius:18px;padding:1.35rem 1.4rem 1.2rem;box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease,border-color .4s ease}.icard:hover{transform:translateY(-3px);box-shadow:0 10px 28px #17242117;border-color:color-mix(in srgb,var(--st) 35%,var(--border))}.icard:focus-visible{outline:2px solid var(--forest);outline-offset:3px}.icard-aura{position:absolute;z-index:-1;top:-40%;right:-40%;width:75%;aspect-ratio:1;background:radial-gradient(circle,var(--st-bg) 0%,transparent 65%);opacity:.9;pointer-events:none}.icard-online .icard-aura{animation:aura-breathe 4.5s ease-in-out infinite}.icard-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.icard-icon{position:relative;display:inline-grid;place-items:center;width:54px;height:54px;border-radius:16px;flex:none;color:var(--st);background:var(--st-bg);transition:transform .3s ease}.icard-icon.big{width:68px;height:68px;border-radius:20px}.icard-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:inherit;border:2px solid var(--st);opacity:0;pointer-events:none}.icard-online .icard-ring{animation:ring-pulse 2.8s ease-out infinite}.is-receiving .icard-ring{animation:ring-pulse .9s ease-out infinite}.is-receiving .icard-icon{animation:icon-bump .9s ease-in-out infinite}.icard-title{margin:.35rem 0 0;font-family:var(--font-serif);font-size:1.35rem;font-weight:600;letter-spacing:-.01em}.icard-sum{margin:0;color:var(--ink-muted);font-size:.92rem;min-height:1.3em;overflow-wrap:anywhere}.icard-devs{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem;font-size:.86rem}.icard-devs li{display:flex;align-items:center;gap:.5rem;min-width:0}.icard-dev-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icard-dev-ago{color:var(--ink-faint);font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums}.icard-more{color:var(--ink-faint);padding-left:1.1rem}.icard-foot{margin-top:auto;padding-top:.75rem;border-top:1px dashed var(--border);display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;color:var(--ink-faint)}.icard-go{color:var(--forest);font-weight:600;white-space:nowrap;transition:transform .2s ease}.icard:hover .icard-go{transform:translate(3px)}.icard-flow{position:absolute;left:0;right:0;bottom:0;height:3px;opacity:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,var(--st) 50%,transparent 100%);background-size:45% 100%;background-repeat:no-repeat;transition:opacity .4s ease}.is-receiving .icard-flow{opacity:1;animation:flow-sweep 1s linear infinite}.icard.is-receiving{border-color:color-mix(in srgb,var(--st) 55%,var(--border));box-shadow:0 0 0 4px var(--st-bg),var(--shadow-sm)}.ibadge{display:inline-flex;align-items:center;gap:.45rem;padding:.28rem .7rem;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--st);background-color:var(--st-bg);white-space:nowrap}.ibadge-dot{width:8px;height:8px;border-radius:50%;background:var(--st)}.ibadge-online .ibadge-dot{animation:dot-pulse 2s ease-out infinite}.ibadge-delayed .ibadge-dot{animation:dot-blink 2.4s ease-in-out infinite}.is-receiving .ibadge{background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);background-size:60% 100%;background-repeat:no-repeat;animation:badge-shine 1.1s linear infinite}.is-receiving .ibadge-dot{animation:dot-pulse .8s ease-out infinite}.sdot{flex:none;display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--st)}.sdot-online{animation:dot-pulse 2.4s ease-out infinite}.icard-skeleton{cursor:default;min-height:210px}.icard-skeleton:hover{transform:none;box-shadow:var(--shadow-sm)}.sk{border-radius:8px;background:linear-gradient(90deg,var(--paper-warm) 25%,var(--paper-tint) 50%,var(--paper-warm) 75%);background-size:200% 100%;animation:sk-shimmer 1.4s linear infinite}.sk-icon{width:54px;height:54px;border-radius:16px}.sk-line{height:.9rem}.sk-line.w40{width:40%}.sk-line.w60{width:60%}.sk-line.w80{width:80%}.sk-block{height:160px}.live-chip{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;color:var(--ink-muted);padding:.3rem .75rem;border-radius:999px;background:var(--paper-warm)}.live-dot{width:7px;height:7px;border-radius:50%;background:#8b9692}.live-live .live-dot{--st: #2f8f5b;background:#2f8f5b;animation:dot-pulse 2s ease-out infinite}.live-polling .live-dot{background:#c98410}.chip-integ{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;border:1px solid transparent;font:inherit;font-size:.78rem;background:var(--st-bg);color:var(--ink)}.chip-integ svg{color:var(--st)}.chip-integ:hover{border-color:var(--st)}.chip-integ-dot{width:6px;height:6px;border-radius:50%;background:var(--st)}.chip-integ-online .chip-integ-dot{animation:dot-pulse 2.4s ease-out infinite}.chip-integ.is-receiving .chip-integ-dot{animation:dot-pulse .8s ease-out infinite}.tab-dot{display:inline-block;width:7px;height:7px;margin-left:.35rem;border-radius:50%;background:var(--st);vertical-align:middle}.metric-link{font:inherit;text-align:left;cursor:pointer}.admin-integrations{border:1px dashed var(--border-dark);border-radius:16px;padding:1.2rem 1.3rem;background:var(--paper-tint)}.admin-integrations>p{margin:.3rem 0 .9rem;font-size:.86rem}.admin-head{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.admin-head h3{margin:0;font-family:var(--font-serif);font-size:1.15rem}.admin-list{display:grid;gap:.6rem}.admin-row{display:flex;align-items:center;gap:.9rem;padding:.75rem .9rem;border-radius:12px;background:var(--paper-card);border:1px solid var(--border);cursor:pointer}.admin-row:not(.on){opacity:.72}.admin-icon{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--paper-warm);color:var(--forest);flex:none}.admin-text{flex:1;display:flex;flex-direction:column;min-width:0}.admin-text small{color:var(--ink-muted);font-size:.8rem}.admin-text em{color:var(--ink-faint);font-style:normal;font-size:.8rem}.switch{position:relative;flex:none;width:42px;height:24px;border-radius:999px;background:var(--border-dark);transition:background .25s ease}.switch.on{background:var(--forest)}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;margin:0;cursor:pointer}.switch-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .25s ease;pointer-events:none}.switch.on .switch-knob{transform:translate(18px)}.switch input:focus-visible+.switch-knob{outline:2px solid var(--forest);outline-offset:2px}.ipage{display:flex;flex-direction:column;gap:1.25rem}.ipage-back{align-self:flex-start;font:inherit;font-size:.88rem;color:var(--forest);background:none;border:none;padding:.2rem 0;cursor:pointer}.ipage-back:hover{text-decoration:underline}.ipage-head{position:relative;overflow:hidden;display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;padding:1.3rem 1.4rem;border-radius:18px;background:var(--paper-card);border:1px solid var(--border)}.ipage-titles{flex:1;min-width:min(220px,100%)}.ipage-titles h2{margin:0;font-family:var(--font-serif);font-size:1.7rem}.ipage-titles p{margin:.25rem 0 0}.ipage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:1.25rem;align-items:start}.ipage-wide{grid-column:1 / -1;min-width:0}.ipage-wide>.integration-box{width:100%;box-sizing:border-box}.ipanel{background:var(--paper-card);border:1px solid var(--border);border-radius:16px;padding:1.2rem 1.3rem;min-width:0}.ipanel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}.ipanel-head h3{margin:0;font-family:var(--font-serif);font-size:1.15rem}.ipanel>p{font-size:.86rem}.dev-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.dev-row{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .85rem;border-radius:12px;background:var(--paper);border:1px solid var(--border)}.dev-state{padding-top:.4rem}.dev-main{flex:1;min-width:0}.dev-title{font-size:.95rem;overflow-wrap:anywhere}.dev-sub{display:flex;flex-wrap:wrap;gap:.3rem;font-size:.82rem;color:var(--ink-muted);margin-top:.15rem}.dev-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.dev-flags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.flag{font-size:.74rem;padding:.15rem .5rem;border-radius:999px;background:var(--paper-warm);color:var(--ink-muted)}.flag.ok{background:#2f8f5b1f;color:#24704a}.flag.warn{background:#c9841024;color:#8a5a07}.steps-guide{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.85rem;font-size:.9rem}.steps-guide li>strong{display:block;margin-bottom:.3rem}.app-list{margin:.3rem 0 0;padding-left:1rem;display:flex;flex-direction:column;gap:.3rem;font-size:.86rem}.dl-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.4rem 0}.dl-row a{text-decoration:none}.pair-box{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.pair-row{display:flex;gap:.5rem;flex-wrap:wrap}.pair-row input{flex:1;min-width:min(160px,100%);padding:.45rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:.88rem;background:var(--paper-card);color:var(--ink)}.token-once{display:flex;flex-direction:column;gap:.35rem;font-size:.84rem;padding:.7rem;border-radius:10px;background:var(--forest-bg)}.token-row{display:flex;align-items:center;gap:.5rem;margin:.3rem 0;min-width:0}.token-row code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.8rem;padding:.35rem .5rem;border-radius:6px;background:var(--paper);border:1px solid var(--border)}.health-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;margin-bottom:1rem}.htile{display:flex;flex-direction:column;gap:.1rem;padding:.75rem .85rem;border-radius:12px;background:var(--paper);border:1px solid var(--border)}.htile-label{font-size:.75rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em}.htile-val{font-family:var(--font-serif);font-size:1.4rem;font-weight:600;font-variant-numeric:tabular-nums}.htile-sub{font-size:.76rem;color:var(--ink-muted)}.chart-block{margin-top:1rem}.chart-block h4{margin:0 0 .45rem;font-size:.88rem;color:var(--ink-muted);font-weight:600}.chart-steps{position:relative;display:grid;grid-template-columns:repeat(24,1fr);align-items:end;gap:3px;height:120px;padding-bottom:1.3rem}.bar-col{height:100%;display:flex;align-items:flex-end}.bar-col .bar{width:100%;border-radius:4px 4px 1px 1px;background:linear-gradient(180deg,#4f9f78,#2f6f55);transition:height .5s ease}.chart-axis{display:flex;justify-content:space-between;font-size:.72rem;color:var(--ink-faint)}.chart-steps .chart-axis{position:absolute;left:0;right:0;bottom:0}.chart-line{margin:0}.chart-line svg{display:block;width:100%;height:150px;background:var(--paper);border-radius:10px;border:1px solid var(--border)}.chart-line .grid{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.chart-line .ln{fill:none;stroke:#c0503a;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round}.chart-line .pt{fill:#c0503a}.chart-line figcaption{display:flex;justify-content:space-between;font-size:.75rem;color:var(--ink-faint);margin-top:.25rem}.sleep-strip{position:relative;height:34px;border-radius:10px;background:var(--paper);border:1px solid var(--border);overflow:hidden}.sleep-strip .stg{position:absolute;top:0;bottom:0}.stg-deep{background:#233e6b}.stg-light{background:#5f86c4}.stg-rem{background:#8a6bc7}.stg-sleep{background:#4b6fa8}.stg-awake{background:#e2a33a}.stg-out{background:#d5cdbd}.stg-unknown{background:#b9c0c9}.chart-axis.two{margin-top:.25rem}.sleep-legend{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.78rem;color:var(--ink-muted);margin-top:.4rem}.sleep-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:.2rem}.session-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;font-size:.88rem}.session-list li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline}.session-kind{font-size:.72rem;padding:.1rem .5rem;border-radius:999px;background:var(--event-bg);color:var(--event)}.session-kind.exercise{background:#c0503a1f;color:#a2412e}.pair-qr{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap;margin:.5rem 0}.pair-qr img{border-radius:12px;border:1px solid var(--border);background:#fff;padding:6px;flex:none}.pair-qr-text{flex:1;min-width:min(220px,100%);display:flex;flex-direction:column;gap:.4rem;font-size:.86rem}.pair-qr-text ol{margin:0;padding-left:1.1rem}.pair-code{font-family:var(--font-mono);font-size:1.1rem;letter-spacing:.08em}.pair-start{margin:.5rem 0}.pair-done{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.5rem 0;padding:.7rem .9rem;border-radius:12px;background:#2f8f5b1a;font-size:.88rem}.pair-ok{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#2f8f5b;color:#fff;font-weight:700}.pair-manual{margin-top:.5rem;font-size:.86rem}.pair-manual summary{cursor:pointer;color:var(--ink-muted)}.hc-diagnosis{font-size:.88rem;display:flex;flex-direction:column;gap:.6rem;padding:.85rem 1rem;border-radius:12px;background:#5b7ba614;border:1px solid rgba(91,123,166,.25)}.hc-diagnosis p{margin:0}.metric-toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:.5rem}.mtoggle{display:flex;align-items:center;gap:.6rem;font-size:.88rem;padding:.5rem .65rem;border-radius:10px;background:var(--paper);border:1px solid var(--border);cursor:pointer}.ipage .sources-panel .source-card,.integration-box.sources-panel .source-card{grid-template-columns:repeat(auto-fill,minmax(min(560px,100%),1fr))}.ipage .source-device{min-width:0;max-width:100%;overflow-x:auto;box-sizing:border-box}.ipage .source-device-head,.ipage .source-device-meta{flex-wrap:wrap;min-width:0}.ipage .source-device-head .sd-name{min-width:0;max-width:100%}.ipage .integration-box{min-width:0;max-width:100%;box-sizing:border-box}.ipage .diag-table{display:block;max-width:100%;overflow-x:auto}@keyframes ring-pulse{0%{transform:scale(.92);opacity:.55}to{transform:scale(1.32);opacity:0}}@keyframes dot-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--st) 55%,transparent)}to{box-shadow:0 0 0 7px transparent}}@keyframes dot-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes aura-breathe{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes flow-sweep{0%{background-position:-50% 0}to{background-position:150% 0}}@keyframes badge-shine{0%{background-position:-60% 0}to{background-position:160% 0}}@keyframes icon-bump{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:640px){.ipage-head{padding:1rem}.ipage-titles h2{font-size:1.4rem}.icard{padding:1.1rem 1.1rem 1rem}}@media(prefers-reduced-motion:reduce){.icard,.icard *,.ipage-head *,.chip-integ *,.live-dot,.sk,.sdot{animation:none!important;transition:none!important}.is-receiving .icard-flow{opacity:1}}.ipage .status-pill{white-space:normal}.gb-guide{margin-top:.9rem;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--paper);font-size:.88rem}.gb-guide summary{cursor:pointer}.gb-guide .cmd{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem;padding:.6rem .7rem;border-radius:8px;background:#172421;color:#e6efe9;margin:.4rem 0}@font-face{font-family:Alegreya;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/alegreya-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Alegreya;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/alegreya-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Alegreya;font-style:normal;font-weight:700;font-display:swap;src:url(/app/fonts/alegreya-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Alegreya;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/alegreya-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/alegreya-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya;font-style:normal;font-weight:700;font-display:swap;src:url(/app/fonts/alegreya-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Golos Text;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/golos-text-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Golos Text;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/golos-text-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Golos Text;font-style:normal;font-weight:600;font-display:swap;src:url(/app/fonts/golos-text-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Golos Text;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/golos-text-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Golos Text;font-style:normal;font-weight:500;font-display:swap;src:url(/app/fonts/golos-text-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Golos Text;font-style:normal;font-weight:600;font-display:swap;src:url(/app/fonts/golos-text-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-serif: "Alegreya", "Palatino Linotype", Georgia, serif;--font-sans: "Golos Text", system-ui, -apple-system, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--paper: #f8f6f0;--paper-card: #ffffff;--paper-warm: #f0ece2;--paper-tint: #f4f0e6;--ink: #172421;--ink-muted: #4e5d59;--ink-faint: #81908c;--forest: #244b3e;--forest-bg: #e2ede7;--hypothesis: #c05621;--hypothesis-bg: #fdeee7;--hypothesis-border: #f8d7c6;--event: #2d556e;--event-bg: #e6f0f6;--fact: #8a6a1c;--fact-bg: #fdf8eb;--home-acc: #355e7d;--home-bg: #e9eff5;--border: #e3ded5;--border-dark: #cac4b8;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(23, 36, 33, .05);--shadow-md: 0 4px 16px rgba(23, 36, 33, .06)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;background-color:var(--paper);color:var(--ink);overflow-x:hidden}body{margin:0;padding:0;font-family:var(--font-sans);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{font-family:var(--font-serif);font-weight:500;color:var(--ink);margin:0;line-height:1.15}a{color:inherit;text-decoration:none}.toast-notification{position:fixed;bottom:1.75rem;right:1.75rem;background:var(--ink);color:var(--paper);padding:.75rem 1.25rem;border-radius:var(--radius-md);box-shadow:0 8px 24px #1724212e;font-size:.92rem;font-weight:500;z-index:1000;animation:toastFadeIn .25s cubic-bezier(.16,1,.3,1)}@keyframes toastFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.app-header{position:sticky;top:0;z-index:100;background-color:#f8f6f0f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1.25rem}.app-header-left{display:flex;align-items:center;gap:.85rem}.app-logo{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-serif);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.app-logo-dot{width:9px;height:9px;border-radius:50%;background-color:var(--forest);box-shadow:0 0 0 3px #244b3e26}.app-badge{font-size:.78rem;color:var(--ink-muted);background:var(--paper-warm);border:1px solid var(--border);padding:.15rem .55rem;border-radius:999px}.app-tabs{display:flex;align-items:center;gap:.3rem;background:var(--paper-warm);padding:.25rem;border-radius:var(--radius-md);border:1px solid var(--border);min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.app-tabs::-webkit-scrollbar{display:none}.tab-btn{font-family:var(--font-sans);font-size:.88rem;font-weight:500;color:var(--ink-muted);background:transparent;border:none;padding:.45rem .85rem;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;flex-shrink:0;transition:all .15s ease}.tab-btn:hover{color:var(--ink);background:#ffffff80}.tab-btn.active{background:var(--paper-card);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm)}.tab-dot-ok{width:6px;height:6px;border-radius:50%;background:#10b981}.app-header-right{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem .9rem;margin-left:auto;min-width:0}.header-chips{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.chip{font-size:.75rem;font-weight:500;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--border)}.chip-ok{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.chip-bad{background:#fef2f2;color:#991b1b;border-color:#fecaca}.chip-muted{background:var(--paper-warm);color:var(--ink-faint)}.chip-ha{background:var(--home-bg);color:var(--home-acc);border-color:#c7d7eb}.btn-link{font-size:.85rem;color:var(--ink-muted);padding:.35rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--paper-card);transition:all .15s ease}.btn-link:hover{color:var(--ink);border-color:var(--border-dark)}.app-main{max-width:1200px;margin:0 auto;padding:1.5rem 1.5rem 4rem}.tab-pane{animation:paneIn .2s cubic-bezier(.16,1,.3,1)}@keyframes paneIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pane-header{margin-bottom:1.75rem}.pane-header h2{font-size:2rem;letter-spacing:-.02em}.pane-subtitle{color:var(--ink-muted);font-size:1rem;margin:.4rem 0 0;max-width:48rem}.btn-primary{font-family:var(--font-sans);font-size:.92rem;font-weight:500;color:var(--paper);background:var(--forest);border:none;padding:.6rem 1.15rem;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .15s ease}.btn-primary:hover{background:#1b392f}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-primary-sm{font-family:var(--font-sans);font-size:.85rem;font-weight:500;color:var(--paper);background:var(--forest);border:none;padding:.4rem .85rem;border-radius:var(--radius-sm);cursor:pointer}.btn-primary-sm:hover{background:#1b392f}.btn-secondary{font-family:var(--font-sans);font-size:.92rem;font-weight:500;color:var(--ink);background:var(--paper-card);border:1px solid var(--border-dark);padding:.6rem 1.15rem;border-radius:var(--radius-sm);cursor:pointer}.btn-secondary:hover{background:var(--paper-warm)}.btn-secondary-sm{font-family:var(--font-sans);font-size:.82rem;font-weight:500;color:var(--ink);background:var(--paper-card);border:1px solid var(--border);padding:.35rem .7rem;border-radius:var(--radius-sm);cursor:pointer}.btn-icon{background:var(--paper-card);border:1px solid var(--border);color:var(--ink);width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem}.btn-icon:hover{background:var(--paper-warm)}.toolbar-day{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding:.85rem 1.15rem;background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.date-controls{display:flex;align-items:center;gap:.5rem}.input-date{font-family:var(--font-sans);font-size:.95rem;font-weight:500;color:var(--ink);background:var(--paper);border:1px solid var(--border);padding:.4rem .65rem;border-radius:var(--radius-sm)}.layer-toggles{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}.layer-caption{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint)}.toggle-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;color:var(--ink);cursor:pointer}.toggle-label input[type=checkbox]{accent-color:var(--forest);cursor:pointer}.btn-seed{font-family:var(--font-sans);font-size:.85rem;color:var(--ink-muted);background:var(--paper);border:1px dashed var(--border-dark);padding:.4rem .75rem;border-radius:var(--radius-sm);cursor:pointer}.btn-seed:hover{color:var(--ink);border-style:solid}.day-overview-card{background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);margin-bottom:2rem}.overview-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.25rem}.metric-box{background:var(--paper);border:1px solid var(--border);padding:.85rem 1rem;border-radius:var(--radius-md);display:flex;flex-direction:column}.metric-quiet{background:#fdfaf5;border-color:#faebd7}.metric-ha{background:var(--home-bg);border-color:#d1ddef}.m-label{font-size:.78rem;color:var(--ink-muted);margin-bottom:.25rem}.m-val{font-family:var(--font-serif);font-size:1.45rem;font-weight:600;color:var(--ink);line-height:1.1}.m-sub{font-size:.72rem;color:var(--ink-faint);margin-top:.2rem}.day-bar{display:flex;height:18px;border-radius:999px;overflow:hidden;background:var(--border);margin-bottom:1.25rem}.bar-seg{height:100%;transition:width .3s ease}.seg-sleep{background:#3b82f6}.seg-commute{background:#8b5cf6}.seg-work{background:#10b981}.seg-rest{background:#f59e0b}.seg-quiet{background:#f97316}.seg-home{background:#0ea5e9}.seg-digital{background:#ec4899}.seg-uncertain{background:#94a3b8}.day-observation-banner{background:var(--forest-bg);border-left:3px solid var(--forest);padding:.9rem 1.15rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.obs-badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--forest);display:block;margin-bottom:.25rem}.day-observation-banner p{margin:0;font-size:.95rem;color:var(--ink)}.soft-question-line{margin-top:.45rem;font-size:.88rem;font-style:italic;color:var(--ink-muted)}.timeline-container{margin-top:1.5rem}.timeline-empty{text-align:center;padding:3rem 1.5rem;background:var(--paper-card);border:1px dashed var(--border-dark);border-radius:var(--radius-md);color:var(--ink-muted)}.empty-icon{font-size:2.2rem;margin-bottom:.5rem}.timeline-empty h3{font-family:var(--font-serif);font-size:1.35rem;margin:0 0 .5rem;color:var(--ink)}.timeline-empty p{font-size:.92rem;max-width:480px;margin:0 auto 1.25rem;line-height:1.5}.empty-sub-card{padding:1.5rem;background:var(--paper);border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--ink-muted);font-size:.9rem;text-align:center;margin-bottom:1rem}.timeline-list{list-style:none;margin:0;padding:0;position:relative}.timeline-list:before{content:"";position:absolute;top:1rem;bottom:1rem;left:3.75rem;width:1px;background:var(--border)}.timeline-entry{display:flex;align-items:flex-start;gap:1.5rem;margin-bottom:1.15rem;position:relative}.t-time{width:3rem;text-align:right;font-family:var(--font-mono);font-size:.9rem;color:var(--ink-muted);padding-top:.75rem}.t-card{flex:1;background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1.25rem;box-shadow:var(--shadow-sm);position:relative}.entry-fact .t-card{border-left:3px solid var(--fact)}.entry-event .t-card{border-left:3px solid var(--event)}.entry-hypo .t-card{border-left:3px solid var(--hypothesis);background:#fffbf9}.t-card-header{display:flex;align-items:center;gap:.65rem;margin-bottom:.4rem}.badge-fact{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--fact);background:var(--fact-bg);padding:.1rem .4rem;border-radius:4px}.badge-event{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--event);background:var(--event-bg);padding:.1rem .4rem;border-radius:4px}.badge-hypo{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--hypothesis);background:var(--hypothesis-bg);padding:.1rem .4rem;border-radius:4px}.badge-corrected{font-size:.7rem;color:#059669;background:#ecfdf5;padding:.1rem .4rem;border-radius:4px}.t-source{font-size:.78rem;color:var(--ink-faint)}.t-conf{font-size:.78rem;color:var(--hypothesis)}.t-status{font-size:.78rem;color:var(--ink-faint)}.t-title{display:block;font-size:1.05rem;font-weight:600;color:var(--ink);margin-bottom:.2rem}.t-detail{font-size:.92rem;color:var(--ink-muted);margin:0 0 .5rem}.t-actions{display:flex;align-items:center;gap:.65rem;margin-top:.65rem;padding-top:.5rem;border-top:1px dashed var(--hypothesis-border)}.btn-action-ok{font-size:.82rem;font-weight:500;color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;padding:.35rem .65rem;border-radius:var(--radius-sm);cursor:pointer}.btn-action-cancel{font-size:.82rem;font-weight:500;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;padding:.35rem .65rem;border-radius:var(--radius-sm);cursor:pointer}.t-category-selector{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.82rem}.cat-prompt{color:var(--ink-faint)}.t-category-selector select{font-size:.82rem;color:var(--ink);background:var(--paper);border:1px solid var(--border);padding:.2rem .5rem;border-radius:4px}.week-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.5rem}.week-chart-card,.patterns-card{background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.week-chart-card h3,.patterns-card h3{font-size:1.35rem;margin-bottom:1.25rem}.week-bars-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;height:240px;align-items:end;padding:1rem .5rem .5rem;border-bottom:1px solid var(--border)}.day-col{display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.stacked-bar{width:100%;max-width:32px;background:var(--paper-warm);border-radius:4px;overflow:hidden;display:flex;flex-direction:column-reverse;height:180px}.stack-part{width:100%;transition:height .3s ease}.col-label{font-size:.82rem;font-weight:600;color:var(--ink);margin-top:.5rem}.col-switches{font-size:.72rem;color:var(--ink-faint);margin-top:.15rem}.bar-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;font-size:.82rem;color:var(--ink-muted)}.leg-item{display:inline-flex;align-items:center;gap:.35rem}.leg-color{width:10px;height:10px;border-radius:2px}.patterns-list{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.5rem}.pattern-item{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:.85rem 1rem}.pat-header{display:flex;justify-content:space-between;margin-bottom:.25rem}.pat-tag{font-size:.72rem;font-weight:600;text-transform:uppercase;color:var(--forest)}.pat-conf{font-size:.72rem;color:var(--ink-faint)}.pattern-item strong{display:block;font-size:.95rem;color:var(--ink);margin-bottom:.2rem}.pattern-item p{margin:0;font-size:.88rem;color:var(--ink-muted)}.pattern-question-card{background:var(--hypothesis-bg);border-left:3px solid var(--hypothesis);padding:.9rem 1rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.pattern-question-card strong{display:block;font-size:.82rem;color:var(--hypothesis);margin-bottom:.25rem}.pattern-question-card p{margin:0 0 .4rem;font-size:.9rem;color:var(--ink)}.soft-question{display:block;font-size:.85rem;font-style:italic;color:var(--ink-muted)}.month-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr);gap:1.5rem}.month-share-card,.month-shifts-card,.experiment-card-full{background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.experiment-card-full{grid-column:1 / -1;background:#fdfcf9;border:1px solid #eadecb}.month-share-card h3,.month-shifts-card h3,.experiment-card-full h3{font-size:1.35rem;margin-bottom:1.25rem}.section-sub-title{font-size:1.1rem;margin:1.25rem 0 .65rem}.share-bars-wrap{display:flex;flex-direction:column;gap:.9rem}.share-row{display:grid;grid-template-columns:180px 1fr 110px;align-items:center;gap:.85rem}.s-label{font-size:.88rem;color:var(--ink)}.s-bar-bg{height:12px;background:var(--paper-warm);border-radius:999px;overflow:hidden}.s-bar-fill{height:100%;border-radius:999px}.s-val{font-size:.85rem;font-family:var(--font-mono);color:var(--ink-muted);text-align:right}.shifts-list{display:flex;flex-direction:column;gap:.75rem}.shift-item{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem .9rem}.shift-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.shift-pill{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:999px}.trend-up{background:#ecfdf5;color:#065f46}.trend-down{background:#fef2f2;color:#991b1b}.shift-item p{margin:0;font-size:.85rem;color:var(--ink-muted)}.routines-list,.blindspots-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.routines-list li,.blindspots-list li{font-size:.88rem;color:var(--ink-muted)}.exp-badge{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--forest);background:var(--forest-bg);padding:.2rem .6rem;border-radius:999px;margin-bottom:.5rem}.exp-desc{font-size:1rem;color:var(--ink);margin:0 0 .75rem}.exp-basis{font-size:.88rem;color:var(--ink-muted);background:var(--paper-warm);padding:.6rem .85rem;border-radius:var(--radius-sm);margin-bottom:1.25rem}.exp-checkins strong{display:block;font-size:.9rem;color:var(--ink);margin-bottom:.65rem}.checkins-row{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:1.15rem}.check-day{background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem;text-align:center;display:flex;flex-direction:column;gap:.2rem}.check-day.done{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.check-day.fail{background:var(--paper);color:var(--ink-faint)}.checkin-actions{display:flex;gap:.75rem}.companion-ui-wrap{display:flex;flex-direction:column;gap:1.5rem}.quick-prompts{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.qp-label{font-size:.82rem;color:var(--ink-faint);margin-right:.25rem}.btn-prompt{font-family:var(--font-sans);font-size:.85rem;color:var(--forest);background:var(--paper-card);border:1px solid var(--border);padding:.35rem .75rem;border-radius:999px;cursor:pointer;transition:all .15s ease}.btn-prompt:hover{background:var(--forest-bg);border-color:var(--forest)}.companion-input-form{display:flex;gap:.75rem}.input-query{flex:1 1 0%;min-width:0;font-family:var(--font-sans);font-size:1rem;color:var(--ink);background:var(--paper-card);border:1px solid var(--border);padding:.75rem 1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.input-query:focus{outline:none;border-color:var(--forest)}.companion-result-card{background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);animation:paneIn .25s ease}.result-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem}.res-badge{font-size:.85rem;font-weight:600;color:var(--forest)}.res-matched{font-size:.78rem;color:var(--ink-faint)}.structured-companion-blocks{display:flex;flex-direction:column;gap:1.15rem}.comp-block{padding:1rem 1.25rem;border-radius:var(--radius-md)}.cb-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.comp-obs{background:var(--paper-tint);border-left:3px solid var(--ink)}.comp-obs .cb-label{color:var(--ink-muted)}.comp-data{background:var(--fact-bg);border-left:3px solid var(--fact)}.comp-data .cb-label{color:var(--fact)}.comp-data ul{margin:0;padding-left:1.25rem;font-size:.92rem;color:var(--ink)}.comp-expl{background:var(--hypothesis-bg);border-left:3px solid var(--hypothesis)}.comp-expl .cb-label{color:var(--hypothesis)}.comp-exp{background:var(--forest-bg);border-left:3px solid var(--forest)}.comp-exp .cb-label{color:var(--forest)}.comp-check{background:var(--event-bg);border-left:3px solid var(--event)}.comp-check .cb-label{color:var(--event)}.comp-block p{margin:0;font-size:.95rem;color:var(--ink);line-height:1.5}.plain-answer-block pre{margin:0;font-family:var(--font-sans);white-space:pre-wrap;font-size:.95rem}.integrations-grid-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.integration-box{background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.box-ha{border:1px solid #bfd3eb;background:#fafcfe;grid-column:1 / -1}.ha-config-box{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;margin-bottom:1.25rem}.ha-inputs-row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.35rem}.input-ha-text{flex:1 1 200px;min-width:160px;font-family:var(--font-sans);font-size:.85rem;padding:.45rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--paper-card);color:var(--ink)}.input-ha-text:focus{outline:none;border-color:var(--home-acc)}.ha-control-deck{margin-bottom:1.25rem}.ha-deck-header{font-size:.88rem;color:var(--ink);margin-bottom:.65rem}.quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.btn-ha-quick{display:flex;align-items:center;gap:.75rem;text-align:left;background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem .9rem;cursor:pointer;transition:all .15s ease;color:var(--ink)}.btn-ha-quick:hover:not(:disabled){border-color:var(--home-acc);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-ha-quick:disabled{opacity:.55;cursor:not-allowed}.btn-ha-quick.active{background:var(--forest);border-color:var(--forest);color:#fff}.btn-ha-quick.active small{color:#e2ede7}.ha-quick-icon{font-size:1.4rem;flex-shrink:0}.btn-ha-quick strong{display:block;font-size:.88rem}.btn-ha-quick small{display:block;font-size:.75rem;color:var(--ink-muted);margin-top:.15rem}.ha-entities-section{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem;margin-bottom:1.25rem}.entities-deck-title{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.65rem;margin-bottom:.85rem;font-size:.85rem}.filter-chips-row{display:flex;gap:.35rem}.chip-btn{font-family:var(--font-sans);font-size:.75rem;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--border);background:var(--paper-card);color:var(--ink-muted);cursor:pointer;transition:all .15s ease}.chip-btn:hover{border-color:var(--home-acc);color:var(--ink)}.chip-btn.active{background:var(--home-acc);color:#fff;border-color:var(--home-acc)}.ha-entities-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.65rem;max-height:280px;overflow-y:auto;padding-right:.25rem}.ha-interactive-card{display:flex;align-items:center;justify-content:space-between;background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .75rem;gap:.65rem}.ha-interactive-card.is-on{border-left:3px solid #10b981}.entity-main{display:flex;align-items:center;gap:.6rem;min-width:0;flex:1}.entity-icon{font-size:1.25rem;flex-shrink:0}.entity-text{min-width:0}.entity-friendly-name{font-size:.82rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-id-code{font-size:.7rem;font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-right{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.state-tag{font-size:.7rem;font-weight:600;padding:.15rem .45rem;border-radius:4px}.tag-green{background:#ecfdf5;color:#065f46}.tag-neutral{background:var(--paper-warm);color:var(--ink-muted)}.btn-toggle-entity{font-family:var(--font-sans);font-size:.72rem;font-weight:500;padding:.25rem .55rem;background:var(--paper);border:1px solid var(--border-dark);border-radius:4px;cursor:pointer;transition:all .15s ease;color:var(--ink)}.btn-toggle-entity:hover:not(:disabled){background:var(--home-acc);color:#fff;border-color:var(--home-acc)}.ha-webhook-guide{background:var(--paper);border:1px dashed var(--border-dark);border-radius:var(--radius-md);padding:.85rem 1rem}.guide-header-toggle{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:.85rem;font-weight:600;color:var(--ink);-webkit-user-select:none;user-select:none}.toggle-arrow{font-size:.75rem;color:var(--ink-muted)}.guide-body{margin-top:.85rem;font-size:.82rem;color:var(--ink-muted)}.yaml-code{background:#1e293b;color:#f1f5f9;padding:.85rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.75rem;line-height:1.45;overflow-x:auto;margin:.65rem 0}.ha-actions-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.sync-note{font-size:.82rem;color:var(--forest)}.desktop-status-info{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;font-size:.85rem;color:var(--ink-muted);display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.code-snippet{background:#1e293b;color:#f8fafc;padding:.5rem .75rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.78rem}.wearable-demo-box{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink)}.box-mobile{border:1px solid #cce3de;background:#fbfdfc}.mobile-config-box{margin-top:.5rem;margin-bottom:.75rem}.config-label{display:block;font-size:.75rem;font-weight:600;color:var(--ink-faint);text-transform:uppercase;margin-bottom:.35rem}.code-snippet-copy{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:#1e293b;color:#f8fafc;padding:.45rem .75rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.82rem;flex-wrap:wrap}.code-snippet-copy code{color:#38bdf8;word-break:break-all;flex:1 1 auto}.code-snippet-copy .btn-micro{flex-shrink:0;white-space:nowrap}.connected-devices-list{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;display:flex;flex-direction:column;gap:.4rem;font-size:.82rem}.mobile-device-row{display:flex;justify-content:space-between;align-items:center;color:var(--ink)}.mobile-device-row small{color:var(--ink-faint)}.place-confirm-form{display:flex;gap:.5rem;margin-bottom:.85rem;flex-wrap:wrap}.input-place{flex:1 1 120px;min-width:0;font-family:var(--font-sans);font-size:.85rem;padding:.4rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--paper-card)}.input-place:focus{outline:none;border-color:var(--forest)}.places-list{display:flex;flex-direction:column;gap:.4rem}.place-item{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .75rem;display:flex;justify-content:space-between;font-size:.85rem}.place-item small{color:var(--ink-faint);font-family:var(--font-mono)}.privacy-actions-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.privacy-action-card{background:var(--paper-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.privacy-action-card h3{font-size:1.25rem;margin-bottom:.5rem}.privacy-action-card p{color:var(--ink-muted);font-size:.92rem;margin:0 0 1.25rem;line-height:1.5}.card-danger{border-color:#fecaca;background:snow}.card-danger h3{color:#991b1b}.btn-danger{font-family:var(--font-sans);font-size:.92rem;font-weight:500;color:#fff;background:#dc2626;border:none;padding:.6rem 1.15rem;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .15s ease}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.app-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem 1rem}.app-tabs{overflow-x:auto;padding:.2rem}.app-header-right{justify-content:space-between}.toolbar-day{flex-direction:column;align-items:stretch}.week-layout,.month-layout{grid-template-columns:1fr}.share-row{grid-template-columns:130px 1fr 90px}.timeline-list:before{left:2.75rem}.t-time{width:2.25rem;font-size:.78rem}.timeline-entry{gap:.85rem}}@media(max-width:640px){.app-main{padding:1rem .75rem 3rem}.day-overview-card{padding:1rem .85rem}.overview-metrics{grid-template-columns:repeat(2,1fr);gap:.6rem}.metric-box{padding:.75rem .85rem}.m-val{font-size:1.35rem}.header-chips{gap:.35rem;flex-wrap:wrap}.chip{font-size:.72rem;padding:.18rem .45rem}.btn-link{font-size:.78rem;padding:.25rem .5rem}.companion-input-form{flex-direction:column}}.auth-gate-wrapper{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 80px);padding:2rem 1rem}.auth-card{background:var(--paper-light);border:1px solid var(--border);box-shadow:0 12px 36px #0f172a14;border-radius:var(--radius-lg);padding:2.5rem 2.25rem;max-width:500px;width:100%;text-align:center}.auth-badge-icon{font-size:2.75rem;margin-bottom:.75rem;display:inline-block}.auth-card h2{font-size:1.55rem;font-family:var(--font-serif);color:var(--ink);margin-bottom:.5rem}.auth-desc{font-size:.95rem;color:var(--ink-muted);line-height:1.55;margin-bottom:1.75rem}.auth-google-section{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.5rem}.btn-google-action{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.85rem 1.25rem;background:#fff;color:#1f2937;border:1px solid #d1d5db;border-radius:var(--radius-sm);font-size:.98rem;font-weight:500;cursor:pointer;box-shadow:0 2px 6px #0000000f;transition:all .18s ease}.btn-google-action:hover{background:#f9fafb;border-color:#9ca3af;box-shadow:0 4px 10px #00000017}.google-icon-svg{width:20px;height:20px}.auth-divider{display:flex;align-items:center;text-align:center;margin:1.25rem 0;color:var(--ink-faint);font-size:.82rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border)}.auth-divider span{padding:0 .75rem}.auth-quick-form{display:flex;flex-direction:column;gap:.65rem;text-align:left;margin-bottom:1.25rem}.auth-input-group label{display:block;font-size:.82rem;color:var(--ink-muted);margin-bottom:.25rem}.auth-input-group input{width:100%;padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.92rem;background:var(--paper)}.btn-auth-submit{padding:.75rem;background:var(--pine);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:500;font-size:.92rem;cursor:pointer;transition:background .15s ease}.btn-auth-submit:hover{background:var(--pine-dark)}.btn-auth-demo{width:100%;padding:.75rem;background:transparent;color:var(--ink);border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;transition:all .15s ease}.btn-auth-demo:hover{background:var(--paper);border-color:var(--ink-muted)}.auth-guarantees{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.4rem;text-align:left;font-size:.78rem;color:var(--ink-faint)}.user-profile-badge{display:flex;align-items:center;gap:.5rem;background:var(--paper);border:1px solid var(--border);padding:.25rem .65rem;border-radius:999px;font-size:.82rem}.user-profile-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover}.user-profile-email{color:var(--ink);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-micro-logout{background:none;border:none;color:var(--ink-faint);cursor:pointer;font-size:.78rem;padding:.1rem .3rem;border-radius:4px}.btn-micro-logout:hover{color:var(--coral)}.user-avatar-initial{width:22px;height:22px;border-radius:50%;background:var(--pine);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;text-transform:uppercase}.demo-preview-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--paper-warm);border:1px solid var(--border);padding:.18rem .6rem;border-radius:999px;font-size:.78rem}.badge-demo-tag{color:var(--amber);font-weight:600}.auth-loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:1rem;color:var(--ink-muted);font-size:.95rem}.auth-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--pine);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.timeline-empty-onboarding{background:var(--paper-light);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem 2rem;text-align:center;box-shadow:0 4px 16px #0f172a0a}.empty-hero-icon{font-size:2.5rem;margin-bottom:.5rem}.timeline-empty-onboarding h3{font-family:var(--font-serif);font-size:1.45rem;color:var(--ink);margin-bottom:.5rem}.empty-hero-desc{max-width:600px;margin:0 auto 2rem;color:var(--ink-muted);font-size:.95rem;line-height:1.55}.onboarding-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;text-align:left;margin-bottom:2rem}.onboarding-step-card{position:relative;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.25rem 1rem 1rem 1.25rem;transition:transform .15s ease,box-shadow .15s ease}.onboarding-step-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0f172a0f}.step-num{position:absolute;top:10px;right:12px;font-size:.72rem;font-weight:700;color:var(--pine);background:var(--pine-soft);width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}.step-icon{font-size:1.6rem;display:block;margin-bottom:.5rem}.onboarding-step-card strong{display:block;font-size:.98rem;color:var(--ink);margin-bottom:.35rem}.onboarding-step-card p{font-size:.85rem;color:var(--ink-muted);line-height:1.45;margin:0}.link-download-apk{color:var(--pine);font-weight:600;text-decoration:underline}.onboarding-sample-action{display:flex;align-items:center;justify-content:center;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.88rem;color:var(--ink-muted);flex-wrap:wrap}.telemetry-drawer-section{margin-top:2rem}.btn-toggle-telemetry{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.85rem 1.25rem;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.92rem;font-weight:600;color:var(--ink);cursor:pointer;transition:all .15s ease}.btn-toggle-telemetry:hover{background:var(--paper-warm);border-color:var(--ink-muted)}.telemetry-sub-badge{font-size:.75rem;font-weight:500;color:var(--ink-faint);background:var(--paper-light);padding:.2rem .5rem;border-radius:4px}.telemetry-inspector-card{margin-top:.75rem;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.25rem}.telemetry-filters{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.chip-filter{background:var(--paper-light);border:1px solid var(--border);padding:.35rem .75rem;border-radius:999px;font-size:.82rem;color:var(--ink-muted);cursor:pointer;transition:all .15s ease}.chip-filter.active{background:var(--pine);color:#fff;border-color:var(--pine)}.telemetry-table-wrapper{overflow-x:auto;max-height:400px;overflow-y:auto}.telemetry-table{width:100%;border-collapse:collapse;font-size:.84rem;text-align:left}.telemetry-table th{padding:.6rem .75rem;background:var(--paper-warm);color:var(--ink-muted);font-weight:600;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}.telemetry-table td{padding:.6rem .75rem;border-bottom:1px solid var(--border-light, #eee);color:var(--ink)}.tel-time{font-family:monospace;font-size:.82rem;color:var(--ink-muted);white-space:nowrap}.tel-badge{display:inline-block;font-size:.72rem;padding:.15rem .45rem;border-radius:4px;font-weight:600;background:var(--paper-warm)}.tel-desktop{background:#e0f2fe;color:#0369a1}.tel-phone{background:#f0fdf4;color:#15803d}.tel-smarthome{background:#fef3c7;color:#b45309}.tel-place{background:#f3e8ff;color:#7e22ce}.companion-prose-answer{display:flex;flex-direction:column;gap:.85rem;font-size:1rem;line-height:1.65;color:var(--ink)}.devices-empty-state{margin-top:.85rem;padding:.85rem 1rem;background:var(--paper-warm);border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:.85rem;color:var(--ink-muted)}.status-pill{display:inline-block;font-size:.75rem;padding:.1rem .5rem;border-radius:999px;background:#7f7f7f26;white-space:nowrap}.status-pill.pill-green{background:#22c55e26;color:#16a34a}.status-pill.pill-amber{background:#f59e0b26;color:#d97706}.status-pill.pill-gray{background:#7f7f7f26;color:#6b7280}.device-activity{padding:.5rem 0;border-top:1px solid rgba(127,127,127,.15)}.sync-timeline{position:relative;height:10px;margin:.35rem 0;border-radius:4px;background:#7f7f7f1f;overflow:hidden}.sync-timeline span{position:absolute;top:0;bottom:0;background:#22c55e}.sync-timeline span.err{background:#ef4444}.device-activity-stats{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.78rem;opacity:.85}.device-activity-stats .warn{color:#d97706}.device-activity-stats .ok{color:#16a34a}.heatmap{margin:12px 0}.heatmap-head{display:flex;justify-content:space-between;font-size:13px;color:var(--muted, #8a8f98);margin-bottom:6px;flex-wrap:wrap;gap:6px}.heatmap-legend{display:inline-flex;gap:6px;align-items:center}.heatmap-legend .lg{display:inline-block;width:10px;height:10px;border-radius:2px}.lg-desk,.hm-desk .hm-fill{background:#4f8cff}.lg-phone,.hm-phone .hm-fill{background:#2fbf8f}.lg-busy,.hm-busy .hm-fill{background:#b38cff}.lg-sleep,.hm-sleep .hm-fill{background:#3b4a7a}.heatmap-grid{display:grid;grid-template-columns:repeat(24,1fr);gap:3px}.hm-cell{position:relative;height:34px;border-radius:4px;background:#7f7f7f1f;overflow:hidden}.hm-fill{position:absolute;top:0;right:0;bottom:0;left:0}.hm-h{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-size:10px;color:#5b6170}.hm-strong .hm-h{color:#fff}.hm-now{outline:2px solid #ffb84d}.entry-background .t-card{opacity:.62;border-style:dashed}.badge-device{font-size:11px;padding:1px 6px;border-radius:8px;background:#7f7f7f26}.badge-bg{font-size:11px;padding:1px 6px;border-radius:8px;background:#b38cff33;color:#b38cff}.t-more{margin-top:6px;font-size:13px}.t-more summary{cursor:pointer;color:var(--muted, #8a8f98)}.t-apps{list-style:none;padding:0;margin:6px 0}.t-apps li{display:flex;gap:8px}.t-apps li b{margin-left:auto;font-weight:600}.t-apps li.noise{opacity:.6}.t-meta-line{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted, #8a8f98)}.remember-rule{font-size:12px;margin-left:8px;display:inline-flex;gap:4px;align-items:center}.bg-toggle{margin:6px 0 10px}.diag-pane{display:flex;flex-direction:column;gap:16px}.diag-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}.diag-table td{vertical-align:top}.lv-badge{font-size:11px;padding:1px 6px;border-radius:6px;background:#7f7f7f26}.lv-badge.lv-warn{background:#ffb84d40;color:#c98a1a}.lv-badge.lv-error{background:#ff5c5c40;color:#e05252}.mono{font-family:ui-monospace,monospace;font-size:12px}.rule-list{list-style:none;padding:0}.rule-list li{display:flex;gap:8px;align-items:center;padding:3px 0}.rule-form{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}.rule-form input{flex:1;min-width:180px}.muted{color:var(--muted, #8a8f98)}.error-text{color:#e05252;font-size:13px}.seg-chat{background:#f472b6}.seg-entertainment{background:#db2777}.seg-media{background:#a855f7}.seg-background{background:#c4b5fd}.seg-other{background:#94a3b8}.integration-box .diag-filters .chip-filter{background:var(--paper-light, #faf8f3);color:var(--ink-muted, #5b6170);border:1px solid var(--border, #ddd)}.integration-box .diag-filters .chip-filter.active{background:var(--pine, #2f5d50);color:#fff;border-color:var(--pine, #2f5d50)}.sources-panel .source-card{margin-top:.8rem}.sources-panel .source-card h4{margin:.4rem 0}.source-device{border:1px solid var(--line, #e5e7eb);border-radius:8px;padding:.6rem .75rem;margin:.5rem 0;background:#fff}.source-device.device-off{opacity:.6}.source-device-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.source-device-head .sd-icon{font-size:1.2rem}.source-device-head .sd-name{font-weight:600;border:1px solid transparent;background:transparent;padding:.15rem .3rem;border-radius:4px;min-width:10rem}.source-device-head .sd-name:hover,.source-device-head .sd-name:focus{border-color:var(--line, #d1d5db);background:#fff}.source-device-meta{display:flex;flex-direction:column;gap:.2rem;margin:.35rem 0;font-size:.85rem}.stream-table td,.stream-table th{font-size:.85rem;vertical-align:middle}.stream-table tr.stream-off td{color:#9ca3af}.stream-actions{white-space:nowrap}.toggle-line{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.btn-micro.danger{color:#b91c1c}.pill-amber{background:#fef3c7;color:#92400e}.ha-picker{margin-top:.9rem;border-top:1px dashed var(--line, #e5e7eb);padding-top:.7rem}.ha-picker-tools{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.5rem 0}.ha-picker-tools input{min-width:14rem}.ha-picker-list{max-height:360px;overflow:auto;border:1px solid var(--line, #e5e7eb);border-radius:6px}.ha-pick-row{display:flex;gap:.6rem;align-items:center;padding:.3rem .5rem;border-bottom:1px solid #f3f4f6;font-size:.85rem;cursor:pointer}.ha-pick-row.on{background:#ecfdf5}.ha-pick-row .ha-pick-name{font-weight:600;min-width:10rem}.places-panel .place-form{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.places-panel .place-form input[type=number],.place-row input[type=number]{width:5rem}.place-list{list-style:none;padding:0}.place-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.3rem 0}.cat-totals{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .6rem}.cat-total{font-size:.8rem;padding:.15rem .5rem;border-radius:999px;background:var(--paper-warm, #f5f5f4);cursor:pointer;border:1px solid transparent}.cat-total.active{border-color:var(--forest, #166534)}.usage-tools{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.4rem 0}.rule-list li select{margin:0 .3rem}tr.usage-noise td{color:#9ca3af}.sources-panel,.places-panel{grid-column:1 / -1}.sources-panel .source-card{display:grid;grid-template-columns:repeat(auto-fill,minmax(560px,1fr));gap:.6rem}.sources-panel .source-card>h4,.sources-panel .source-card>p{grid-column:1 / -1}
