:root{--background: 210 25% 98%;--foreground: 215 25% 15%;--card: 0 0% 100%;--primary: 210 85% 45%;--primary-foreground: 0 0% 100%;--primary-hover: 210 85% 40%;--muted: 210 15% 95%;--muted-foreground: 215 16% 38%;--accent: 200 85% 45%;--destructive: 0 72% 45%;--border: 210 15% 82%;--input: 210 15% 76%;--ring: 210 85% 45%;--radius: .5rem;color-scheme:light}:root[data-theme=dark]{--background: 215 22% 12%;--foreground: 210 25% 95%;--card: 215 20% 17%;--primary: 210 90% 66%;--primary-foreground: 215 40% 10%;--primary-hover: 210 90% 72%;--muted: 215 18% 23%;--muted-foreground: 215 16% 74%;--accent: 200 85% 60%;--destructive: 0 90% 70%;--border: 215 15% 30%;--input: 215 15% 38%;--ring: 210 90% 66%;color-scheme:dark}*{box-sizing:border-box;border-color:hsl(var(--border))}html,body,#root{height:100%;margin:0}body{background:hsl(var(--background));color:hsl(var(--foreground));font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.muted{color:hsl(var(--muted-foreground))}.centered{display:grid;place-items:center;height:100%}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100%;overflow-x:hidden;background:hsl(var(--muted) / .4);padding:32px 16px}.login-card{width:100%;max-width:28rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));padding:24px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}@media (min-width: 640px){.login-card{padding:32px}}.login-header{margin-bottom:32px;text-align:center}.login-header h1{margin:0 0 8px;font-size:2.25rem;line-height:2.5rem;font-weight:600}.login-header p{margin:0;font-size:.875rem;line-height:1.25rem;color:hsl(var(--muted-foreground))}.login-body{display:flex;flex-direction:column;gap:20px}.stack{display:flex;flex-direction:column;gap:16px}.input{height:40px;width:100%;font:inherit;font-size:.875rem;border-radius:calc(var(--radius) - 2px);border:1px solid hsl(var(--input));background:hsl(var(--background));color:hsl(var(--foreground));padding:8px 12px}.input::placeholder{color:hsl(var(--muted-foreground))}.input:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.input:disabled{opacity:.5;cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:8px 16px;font:inherit;font-size:.875rem;font-weight:500;border-radius:calc(var(--radius) - 2px);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .15s,color .15s}.btn:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.btn:disabled{opacity:.5;pointer-events:none}.btn.full{width:100%}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover{background:hsl(var(--primary-hover))}.btn-outline{border-color:hsl(var(--input));background:hsl(var(--background));color:hsl(var(--foreground));padding:8px 12px}.btn-outline:hover{background:hsl(var(--accent) / .12)}.send-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.toggle-group{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:8px}.toggle{height:40px;width:100%;font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;border-radius:calc(var(--radius) - 2px);border:1px solid hsl(var(--input));background:hsl(var(--background));color:hsl(var(--foreground));transition:background-color .15s,color .15s}.toggle:hover{background:hsl(var(--accent) / .12)}.toggle[data-state=on]{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.toggle:disabled{opacity:.5;pointer-events:none}.alert{border:1px solid hsl(var(--border));border-radius:var(--radius);padding:12px 16px;font-size:.875rem;line-height:1.25rem;background:hsl(var(--background));color:hsl(var(--foreground))}.alert-destructive{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:hsl(var(--card));border-bottom:1px solid hsl(var(--border))}.brand{font-weight:700}.spacer{flex:1}.link{background:none;border:0;color:hsl(var(--primary));font:inherit;cursor:pointer;padding:0}.content{padding:16px}.btn-sm{height:32px;padding:4px 12px;font-size:.8125rem}.topbar{gap:10px;position:sticky;top:0;z-index:2}.topbar .search{max-width:320px;height:34px}.topbar .select{width:auto;height:34px;padding:4px 8px}.topbar .user{white-space:nowrap}.topbar .updated{white-space:nowrap;font-size:12px}.topbar .updated.stale{color:hsl(var(--destructive));font-weight:600}.gallery{display:grid;grid-template-columns:220px minmax(0,1fr);flex:1;min-height:0}.gallery:has(.detail){grid-template-columns:220px minmax(0,1fr) 380px}.date-tree{border-right:1px solid hsl(var(--border));background:hsl(var(--card));padding:10px 8px;overflow-y:auto;position:sticky;top:55px;height:calc(100vh - 55px)}.tree-row{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;font:inherit;background:none;border:0;border-radius:6px;color:inherit;cursor:pointer;text-align:left}.tree-row:hover{background:hsl(var(--muted))}.tree-row.day{padding-left:34px}.tree-row.day.selected{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.tree-row.day.selected .tree-count,.tree-row.day.selected .tree-max{color:inherit;opacity:.85}.tree-month .tree-row:not(.day){padding-left:20px}.tree-year>.tree-row .tree-label{font-weight:600}.tree-label{flex:1}.tree-count,.tree-max{font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.tree-days{list-style:none;margin:0;padding:0}.chev{width:0;height:0;border:4px solid transparent;border-left:5px solid hsl(var(--muted-foreground));margin-right:2px;transition:transform .12s}.chev.open{transform:rotate(90deg)}.tree-empty{padding:8px;font-size:13px}.date-search{display:flex;flex-direction:column;gap:6px;padding:2px 8px 12px;margin-bottom:8px;border-bottom:1px solid hsl(var(--border));font-size:12px}.date-search-title{text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.date-search .input{height:32px;font-size:13px;padding:4px 8px}.date-field{display:flex;align-items:center;gap:6px;color:hsl(var(--muted-foreground))}.date-field span{width:32px;flex:none}.date-field .input{min-width:0}.tree-days.flat .tree-row.day{padding-left:10px}.tree-row.day.none:not(.selected) .tree-label{color:hsl(var(--muted-foreground))}.events-main{padding:16px 20px 24px;min-width:0}.events-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.events-head h1{margin:0;font-size:1.25rem;font-weight:600}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.empty{padding:24px 0}.events-foot{margin-top:20px;font-size:12px}.event-card{display:flex;flex-direction:column;gap:8px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:12px;transition:border-color .12s,box-shadow .12s}.event-card:hover{border-color:hsl(var(--primary) / .6);box-shadow:0 1px 3px #00000014}.event-card.selected{border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsl(var(--primary) / .25)}.card-top{display:flex;align-items:center;gap:8px}.card-time{font-weight:600;font-variant-numeric:tabular-nums}.card-top .chip{margin-left:auto}.card-temps{display:flex;align-items:center;gap:12px}.temp-max{display:flex;flex-direction:column;line-height:1.1}.temp-value{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.temp-max.big .temp-value{font-size:2.2rem}.temp-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}.temp-hot .temp-value,.tree-max.temp-hot{color:hsl(var(--destructive))}.temp-cold .temp-value{color:hsl(var(--muted-foreground))}.card-ticket{display:flex;align-items:center;gap:8px;min-height:22px}.card-customer{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:12px;background:hsl(var(--muted));color:hsl(var(--foreground));white-space:nowrap}.chip-ok{background:hsl(var(--primary) / .12);color:hsl(var(--primary))}.chip-muted{color:hsl(var(--muted-foreground))}.card-media{display:flex;align-items:center;gap:6px;font-size:11px}.dot{padding:1px 6px;border-radius:4px;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));opacity:.55}.dot.on{opacity:1;color:hsl(var(--foreground));border-color:hsl(var(--primary) / .5);background:hsl(var(--primary) / .08)}.card-id{font-variant-numeric:tabular-nums}.detail{border-left:1px solid hsl(var(--border));background:hsl(var(--card));padding:16px 18px;position:sticky;top:55px;height:calc(100vh - 55px);overflow-y:auto}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.detail-head h2{margin:2px 0 0;font-size:1.25rem}.detail-temps{display:flex;gap:18px;margin:14px 0 6px;flex-wrap:wrap}.detail-section{margin-top:18px}.detail-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:12px;padding:10px 12px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:6px}.detail-toggle:hover{border-color:hsl(var(--primary) / .6)}.detail-toggle:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.detail-ticket{display:flex;align-items:baseline;gap:10px;min-width:0}.detail-ticket .k{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.detail-ticket b{font-size:1.1rem;font-variant-numeric:tabular-nums}.detail-toggle-hint{display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap;color:hsl(var(--primary))}.detail-toggle-hint .chev{border-left-color:currentColor;margin:0}.trigger-note{margin:0 0 6px;font-size:12px}.detail-section h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.kv-grid{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;font-size:13px}.kv{display:contents}.kv .k{color:hsl(var(--muted-foreground))}.kv .v{overflow-wrap:anywhere}.media-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.media-item{border:1px solid hsl(var(--border));border-radius:6px;padding:8px 10px}.media-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.media-label{font-weight:500}.media-name,.media-note{font-size:12px;overflow-wrap:anywhere;margin-top:2px}.pulling{display:flex;align-items:center;gap:10px;border-color:hsl(var(--primary) / .4);background:hsl(var(--primary) / .06)}.spin-ring{width:16px;height:16px;border-radius:50%;border:2px solid hsl(var(--primary) / .3);border-top-color:hsl(var(--primary));animation:spin .8s linear infinite}@media (max-width: 900px){.gallery,.gallery:has(.detail){grid-template-columns:1fr}.date-tree,.detail{position:static;height:auto;border:0;border-bottom:1px solid hsl(var(--border))}.topbar .search{max-width:none}}.snapshot{position:relative;width:100%;aspect-ratio:1226 / 673;border-radius:6px;overflow:hidden;background:hsl(var(--muted))}.snapshot img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s}.snapshot.ok img{opacity:1}.snapshot.placeholder,.snapshot-wait{display:flex;align-items:center;justify-content:center;font-size:12px;color:hsl(var(--muted-foreground))}.snapshot-wait{position:absolute;top:0;right:0;bottom:0;left:0}.snapshot.loading .snapshot-wait:before{content:"";width:14px;height:14px;margin-right:8px;border-radius:50%;border:2px solid hsl(var(--primary) / .3);border-top-color:hsl(var(--primary));animation:spin .8s linear infinite}.event-card .snapshot{margin:-4px -4px 0;width:calc(100% + 8px)}.detail-snapshot,.detail-media{margin-top:12px}.detail-media .seg{display:flex;margin-bottom:8px}.detail-media .seg button{flex:1}.detail-media .detail-snapshot{margin-top:0}.snapshot.rgb{aspect-ratio:16 / 9;background:#000}.snapshot.rgb a{display:block;width:100%;height:100%;cursor:zoom-in}.snapshot.rgb img,.snapshot.rgb video{display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .2s}.snapshot.rgb.ok img,.snapshot.rgb.ok video{opacity:1}.snapshot.rgb .snapshot-wait{color:#ddd;padding:0 12px;text-align:center}.snapshot.rgb .rgb-error{gap:8px}.snapshot.rgb .rgb-error .link{color:#8ec5ff}.detail-snapshot img{object-fit:contain}.gallery:has(.detail){grid-template-columns:220px minmax(0,1fr) 460px}.snapshot.expandable{cursor:zoom-in}.snapshot.expandable:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.snapshot-expand{position:absolute;right:6px;bottom:6px;width:22px;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:13px;background:#0000008c;color:#fff;opacity:0;transition:opacity .15s;pointer-events:none}.snapshot.expandable:hover .snapshot-expand{opacity:1}.event-card{cursor:pointer}.viewer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:16px}.viewer{width:min(1400px,100%);max-height:100%;display:flex;flex-direction:column;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 20px 60px #0006;overflow:hidden}.viewer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid hsl(var(--border))}.viewer-head h2{margin:2px 0 0;font-size:1.1rem}.viewer-actions{display:flex;align-items:center;gap:10px}.seg{display:inline-flex;border:1px solid hsl(var(--input));border-radius:6px;overflow:hidden}.seg button{border:0;background:transparent;color:hsl(var(--foreground));padding:6px 12px;font:inherit;font-size:.8125rem;cursor:pointer}.seg button+button{border-left:1px solid hsl(var(--input))}.seg button.on{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.seg button:disabled{opacity:.5;cursor:default}.viewer-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:0}.viewer-stage{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:#000;min-height:320px}.viewer-canvas,.viewer-pix{display:block;max-width:calc(100% - 60px);max-height:calc(100vh - 160px);aspect-ratio:382 / 288;width:100%;object-fit:contain;cursor:crosshair}.viewer-pix{aspect-ratio:1226 / 673;max-width:100%;cursor:default}.viewer-main{display:flex;flex-direction:column;min-width:0;background:#000}.viewer-main .viewer-stage{flex:1}.viewer-main.has-transport .viewer-canvas{max-height:calc(100vh - 215px)}.viewer-transport{display:flex;align-items:center;gap:12px;padding:4px 16px 14px;color:#eee;font-size:12px}.viewer-transport input[type=range]{flex:1;min-width:0}.viewer-transport .btn{min-width:68px}.viewer-transport select{height:30px;padding:0 6px;border:1px solid hsl(var(--input));border-radius:6px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit}.viewer-time{font-variant-numeric:tabular-nums;white-space:nowrap}.viewer-wait p{max-width:440px;margin:0;text-align:center;color:#bbb;font-size:13px}.viewer-wait{color:#ddd;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:14px}.viewer-wait .snapshot-wait{position:static;color:#ddd}.viewer-scale{display:flex;flex-direction:column;align-items:center;gap:6px;color:#eee;font-size:12px;font-variant-numeric:tabular-nums}.viewer-below{display:flex;align-items:center;gap:5px;margin-top:4px;color:#bbb}.viewer-below i{width:12px;height:12px;border-radius:2px;border:1px solid #999}.viewer-gradient{width:18px;height:min(60vh,420px);border-radius:3px}.viewer-side{padding:14px 16px;overflow:auto;border-left:1px solid hsl(var(--border));font-size:.875rem}.viewer-side .seg{margin-bottom:4px}.viewer-side h3{margin:16px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.viewer-readout{padding:10px 12px;border-radius:6px;background:hsl(var(--muted));margin-bottom:12px}.viewer-hot{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:6px;margin-bottom:12px}.viewer-hot .k{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.viewer-hot b{font-size:1.5rem;line-height:1.1;font-variant-numeric:tabular-nums}.viewer-side .detail-toggle{margin-top:14px}.viewer-check{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:13px;cursor:pointer}.viewer-cursor{font-size:1.9rem;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.viewer-pins{list-style:none;margin:0;padding:0}.viewer-pins li{display:flex;align-items:center;gap:8px;padding:3px 0}.viewer-pins li span{flex:1;color:hsl(var(--muted-foreground))}.viewer-pins .link{background:none;border:0;cursor:pointer;color:hsl(var(--muted-foreground));font-size:16px;line-height:1;padding:0 4px}.viewer-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.viewer-range label{display:flex;flex-direction:column;gap:2px;font-size:12px;color:hsl(var(--muted-foreground))}.viewer-range select{height:32px;padding:0 8px;border:1px solid hsl(var(--input));border-radius:6px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit}.viewer-side .small{font-size:12px;margin:6px 0 0}.viewer-side .link{background:none;border:0;padding:0;color:hsl(var(--primary));cursor:pointer;font:inherit;font-size:12px}.viewer-range input{width:76px;height:32px;padding:0 8px;border:1px solid hsl(var(--input));border-radius:6px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit}@media (max-width: 900px){.viewer-body{grid-template-columns:1fr}.viewer-side{border-left:0;border-top:1px solid hsl(var(--border))}}
