.device-timeline-v2{display:grid;gap:14px}.device-timeline-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.device-timeline-intro h3{margin:4px 0 4px;font-size:18px;letter-spacing:-.025em}.device-timeline-intro p{margin:0;color:var(--muted);font-size:12px}.timeline-total{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted);font-size:11px;font-weight:800}.device-timeline-filters{display:flex;gap:7px;overflow:auto;padding:2px 0 4px;scrollbar-width:thin}.device-timeline-filters button{--timeline-accent:#8c97a7;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:8px 10px;cursor:pointer;font-size:11px;font-weight:750;transition:border-color .14s ease,background .14s ease,color .14s ease,transform .14s ease}.device-timeline-filters button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--timeline-accent) 45%,var(--line));color:var(--ink)}.device-timeline-filters button.active{background:color-mix(in srgb,var(--timeline-accent) 12%,var(--panel));border-color:color-mix(in srgb,var(--timeline-accent) 52%,var(--line));color:var(--ink)}.device-timeline-filters button i{width:7px;height:7px;border-radius:999px;background:var(--timeline-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--timeline-accent) 13%,transparent)}.device-timeline-filters button b{font-size:10px;min-width:20px;text-align:center;padding:2px 5px;border-radius:999px;background:color-mix(in srgb,var(--timeline-accent) 10%,transparent);color:var(--timeline-accent)}.device-timeline-list{display:grid;gap:0;position:relative}.device-timeline-list:before{content:"";position:absolute;left:29px;top:19px;bottom:12px;width:1px;background:var(--line)}.device-timeline-month{position:relative;z-index:1;padding:11px 0 7px 50px}.device-timeline-month span{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:10px;font-weight:850;color:var(--muted);text-transform:capitalize}.device-timeline-event{--timeline-accent:#8c97a7;position:relative;z-index:1;width:100%;display:grid;grid-template-columns:40px minmax(0,1fr) auto 18px;align-items:center;gap:10px;text-align:left;border:1px solid transparent;background:transparent;color:inherit;border-radius:14px;padding:10px 12px 10px 8px;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}.device-timeline-event:hover{background:color-mix(in srgb,var(--timeline-accent) 6%,var(--panel));border-color:color-mix(in srgb,var(--timeline-accent) 32%,var(--line));transform:translateX(2px)}.device-timeline-event:focus-visible{outline:2px solid color-mix(in srgb,var(--timeline-accent) 60%,#fff);outline-offset:2px}.timeline-event-marker{display:grid;place-items:center;width:30px;height:30px;margin-left:6px;border-radius:10px;background:color-mix(in srgb,var(--timeline-accent) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--timeline-accent) 28%,var(--line));box-shadow:0 0 0 4px var(--bg)}.timeline-event-marker i{font-style:normal;font-size:11px;font-weight:900;color:var(--timeline-accent)}.timeline-event-copy{min-width:0;display:grid;gap:2px}.timeline-event-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.timeline-event-top b{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--timeline-accent)}.timeline-event-top time{font-size:10px;color:var(--muted)}.timeline-event-copy strong{font-size:13px;line-height:1.35}.timeline-event-copy small{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-event-status{font-size:10px;font-weight:750;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 7px}.timeline-event-chevron{font-size:20px;color:var(--muted);opacity:.65}.timeline-kind-fault{--timeline-accent:#e56572}.timeline-kind-maintenance{--timeline-accent:#2eb2c3}.timeline-kind-service{--timeline-accent:#e8982f}.timeline-kind-installation{--timeline-accent:#8e72ef}.timeline-kind-delivery{--timeline-accent:#30ad69}.timeline-kind-part{--timeline-accent:#4b87f0}.timeline-kind-meter{--timeline-accent:#6474df}.timeline-kind-supply{--timeline-accent:#d49a36}.timeline-kind-contract{--timeline-accent:#49a36c}.timeline-kind-work{--timeline-accent:#8b96a6}.device-timeline-loading{min-height:220px;display:grid;place-items:center;align-content:center;gap:10px;color:var(--muted)}.device-timeline-loading span{width:28px;height:28px;border:3px solid var(--line);border-top-color:#6574df;border-radius:999px;animation:timeline-spin .7s linear infinite}@keyframes timeline-spin{to{transform:rotate(360deg)}}.device-timeline-peek-shell{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px}.device-timeline-peek-backdrop{position:absolute;inset:0;border:0;background:rgba(7,11,17,.48);backdrop-filter:blur(3px);cursor:default}.device-timeline-peek{--timeline-accent:#8c97a7;position:relative;width:min(520px,94vw);max-height:min(660px,88vh);overflow:auto;border-radius:18px;border:1px solid color-mix(in srgb,var(--timeline-accent) 28%,var(--line));background:var(--panel);box-shadow:0 24px 70px rgba(0,0,0,.24);padding:18px;animation:timeline-peek-in .16s ease-out}.timeline-peek-head{display:grid;grid-template-columns:42px minmax(0,1fr) 34px;gap:11px;align-items:start}.timeline-peek-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--timeline-accent) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--timeline-accent) 30%,var(--line));color:var(--timeline-accent);font-weight:900}.timeline-peek-head span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--timeline-accent);font-weight:900}.timeline-peek-head h3{margin:3px 0 3px;font-size:17px;line-height:1.28}.timeline-peek-head small{color:var(--muted);font-size:10px}.timeline-peek-close{border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;border-radius:8px}.timeline-peek-close:hover{background:var(--soft);color:var(--ink)}.timeline-peek-summary{margin:14px 0 6px;padding:10px 12px;border-radius:11px;background:color-mix(in srgb,var(--timeline-accent) 7%,var(--panel));color:var(--muted);font-size:11px;line-height:1.45}.timeline-peek-rows{display:grid;margin-top:10px}.timeline-peek-rows>div{display:grid;grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr);gap:12px;padding:9px 2px;border-bottom:1px solid var(--line)}.timeline-peek-rows>div:last-child{border-bottom:0}.timeline-peek-rows span{font-size:10px;color:var(--muted)}.timeline-peek-rows b{font-size:11px;text-align:right;word-break:break-word}.timeline-peek-empty{display:block!important;text-align:center!important;color:var(--muted);padding:18px!important}.timeline-peek-actions{display:flex;justify-content:flex-end;margin-top:14px}.timeline-peek-actions:empty{display:none}@keyframes timeline-peek-in{from{opacity:0;transform:translateY(7px) scale(.985)}to{opacity:1;transform:none}}html[data-theme="dark"] .device-timeline-intro,html[data-theme="dark"] .device-timeline-filters button,html[data-theme="dark"] .device-timeline-month span,html[data-theme="dark"] .device-timeline-peek{background:#18212d;border-color:#2c3a4d}html[data-theme="dark"] .device-timeline-event:hover{background:color-mix(in srgb,var(--timeline-accent) 8%,#18212d)}html[data-theme="dark"] .timeline-event-marker{box-shadow:0 0 0 4px #0f151e;background:color-mix(in srgb,var(--timeline-accent) 13%,#18212d)}@media(max-width:720px){.device-timeline-intro{flex-direction:column}.device-timeline-event{grid-template-columns:38px minmax(0,1fr) 16px}.timeline-event-status{display:none}.timeline-event-copy small{white-space:normal}.device-timeline-list:before{left:27px}.timeline-peek-rows>div{grid-template-columns:1fr}.timeline-peek-rows b{text-align:left}}@media(prefers-reduced-motion:reduce){.device-timeline-event,.device-timeline-filters button,.device-timeline-peek{transition:none!important;animation:none!important}.device-timeline-loading span{animation:none!important}}
