:root{--bg:#0b0b0f;--bg-elev:#16161d;--bg-inset:#0e0e14;--surf:#14e0c8;--surf-deep:#0fb3a0;--surf-tint:#14e0c81f;--surf-soft:#5eead4;--accent:#14e0c8;--text:#f5f5f7;--muted:#9aa0a6;--border:#ffffff14;--border-strong:#ffffff29;--danger:#ff6b6b;--danger-bg:#e509141f;--fs-sm:12.5px;--fs-base:14px;--r-sm:6px;--r-md:8px;--r-full:999px;--shadow-1:0 4px 18px #00000059;--shadow-2:0 12px 40px #00000080;--card-radius:8px}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;background:#0b0b0f;background:var(--bg);color:#f5f5f7;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0}a{color:inherit;text-decoration:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,monospace}.cs-nav{align-items:center;background:linear-gradient(180deg,#000000e6,#0000);display:flex;gap:28px;padding:14px 48px;position:-webkit-sticky;position:sticky;top:0;transition:background .3s ease;z-index:50}.cs-nav.scrolled{background:#0b0b0f;background:var(--bg)}.cs-brand{align-items:center;color:#14e0c8;color:var(--surf);display:inline-flex;font-size:22px;font-weight:800;gap:10px;letter-spacing:.5px;text-transform:lowercase}.cs-brand-logo{border-radius:50%;box-shadow:0 0 0 1.5px #00000040,0 1px 6px #00000059;flex-shrink:0;height:34px;width:34px}.cs-brand .cs-brand-name{align-items:baseline;display:inline-flex;font-family:Fraunces,Georgia,Times New Roman,serif;font-weight:700;gap:7px;letter-spacing:.03em}.cs-brand .cs-brand-word1{color:#efe3c4}.cs-brand .cs-brand-word2{color:#c4703d;font-style:italic;font-weight:600}.cs-brand span{color:#f5f5f7;color:var(--text)}.cs-nav-links{display:flex;font-size:14px;gap:20px}.cs-nav-links a{color:#9aa0a6;color:var(--muted)}.cs-nav-links a:hover{color:#f5f5f7;color:var(--text)}.cs-nav-links a.active{color:#5eead4;color:var(--surf-soft)}.cs-nav-spacer{flex:1 1}.cs-nav-user{align-items:center;color:#9aa0a6;color:var(--muted);display:flex;font-size:13px;gap:12px}.cs-nav-email{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-nav-burger{background:#0000;border:1px solid #ffffff2e;border-radius:8px;color:#f5f5f7;color:var(--text);display:none;font-size:18px;height:40px;justify-content:center;line-height:1;margin-left:auto;width:40px}.cs-btn,.cs-nav-burger{align-items:center;cursor:pointer}.cs-btn{background:#14e0c8;background:var(--surf);border:none;border-radius:4px;color:#04201c;display:inline-flex;font-size:15px;font-weight:600;gap:8px;padding:10px 22px;transition:transform .08s ease,opacity .2s ease}.cs-btn:active{transform:scale(.97)}.cs-btn-primary{background:#14e0c8;background:var(--surf);color:#04201c}.cs-btn-ghost{background:#6d6d6e80;color:#f5f5f7;color:var(--text)}.cs-btn-sm{font-size:13px;padding:6px 14px}.cs-btn-outline{background:#0000;border:1px solid #fff6;color:#f5f5f7;color:var(--text)}.cs-card{background:#16161d;background:var(--bg-elev);border:1px solid #ffffff0f;border-radius:8px;border-radius:var(--card-radius);display:block;transition:border-color .15s ease}.cs-card:hover{border-color:#ffffff24}.cs-page{margin:0 auto;max-width:1500px;padding:96px 48px 64px}.cs-page-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.cs-page-head h1{font-size:32px;font-weight:800;margin:0}.cs-dropzone{border:2px dashed #2f2f3a;border-radius:12px;color:#9aa0a6;color:var(--muted);cursor:pointer;padding:40px;text-align:center;transition:border-color .2s ease,background .2s ease}.cs-dropzone.drag{background:#14e0c80f;border-color:#14e0c8;border-color:var(--surf)}.cs-upload-item{align-items:center;border-bottom:1px solid #1e1e26;display:flex;font-size:14px;gap:12px;padding:10px 0}.cs-progress{background:#1e1e26;border-radius:3px;flex:1 1;height:6px;overflow:hidden}.cs-progress>div{background:#14e0c8;background:var(--surf);height:100%;transition:width .2s ease}.cs-upload-block{border-bottom:1px solid #1e1e26}.cs-upload-block .cs-upload-item{border-bottom:none}.cs-manifest-toggle{background:none;border:none;color:#9aa0a6;color:var(--muted);cursor:pointer;flex:0 0 18px;font-size:12px;line-height:1;padding:0;text-align:center;width:18px}.cs-manifest-toggle.is-empty{cursor:default}.cs-check{color:#2dd4bf;font-weight:700;margin-right:4px}.cs-manifest{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto;padding:2px 0 12px 26px}.cs-manifest-row{align-items:center;color:#9aa0a6;color:var(--muted);display:flex;font-size:12.5px;gap:10px}.cs-manifest-row.st-done{color:#f5f5f7;color:var(--text)}.cs-manifest-ic{color:#555;flex:0 0 14px;text-align:center;width:14px}.cs-manifest-row.st-done .cs-manifest-ic{color:#2dd4bf}.cs-manifest-row.st-uploading .cs-manifest-ic{color:#38bdf8}.cs-manifest-row.st-error .cs-manifest-ic{color:#ff6b6b;color:var(--danger)}.cs-manifest-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-manifest-size{flex:0 0 64px;text-align:right;width:64px}.cs-manifest-bar{flex:0 0 70px;height:4px}.cs-drop-card.wide{max-width:1360px}.cs-drop-layout.split{align-items:flex-start;display:flex;gap:22px;margin-top:4px}.cs-drop-main{flex:1 1;min-width:0}.cs-drop-side{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;display:flex;flex:0 0 560px;flex-direction:column;max-height:calc(100vh - 80px);padding:14px 16px;position:-webkit-sticky;position:sticky;top:20px;width:560px}.cs-drop-side-head{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:space-between;margin-bottom:10px}.cs-drop-side-list{margin:0 -4px;overflow-y:auto;padding:0 4px}.cs-ui-name{flex:1 1;font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-ui-meta{align-items:center;display:flex;gap:10px;padding:0 0 10px 26px}.cs-ui-size{color:#9aa0a6;color:var(--muted);flex:0 0 auto;font-size:11.5px;width:62px}.cs-ui-bar{flex:1 1;height:6px}.cs-ui-status{color:#9aa0a6;color:var(--muted);flex:0 0 auto;font-size:11.5px;min-width:64px;text-align:right}.cs-upload-block .cs-upload-item{padding-bottom:4px}@media (max-width:900px){.cs-drop-layout.split{flex-direction:column}.cs-drop-side{flex-basis:auto;max-height:none;position:static;width:100%}}.cs-empty{border:1px solid #1e1e26;border-radius:12px;color:#9aa0a6;color:var(--muted);padding:60px;text-align:center}.cs-badge{background:#14e0c826;border-radius:999px;color:#14e0c8;color:var(--surf);display:inline-block;font-size:11px;font-weight:700;padding:2px 8px}.cs-modal-backdrop{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.cs-modal{background:#16161d;background:var(--bg-elev);border-radius:12px;max-height:90vh;max-width:480px;overflow-y:auto;padding:28px;width:100%}.cs-time{font-feature-settings:"tnum";color:#9aa0a6;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.cs-modal h2{margin-top:0}.cs-field{margin-bottom:14px}.cs-field label{color:#9aa0a6;color:var(--muted);display:block;font-size:13px;margin-bottom:6px}.cs-input{background:#0e0e14;border:1px solid #2a2a33;border-radius:6px;color:#f5f5f7;color:var(--text);font-size:14px;padding:10px 12px;width:100%}.cs-input:focus{border-color:#14e0c8;border-color:var(--surf);outline:none}.cs-nav-jobs{position:relative}.cs-nav-jobs-badge{background:#14e0c8;border-radius:999px;color:#052b27;display:inline-block;font-size:10px;font-weight:700;line-height:16px;margin-left:6px;min-width:16px;padding:0 5px;text-align:center;vertical-align:middle}.cs-auth-wrap{align-items:center;background:radial-gradient(circle at 30% 20%,#10202c,#0b0b0f 60%);background:radial-gradient(circle at 30% 20%,#10202c,var(--bg) 60%);display:flex;justify-content:center;min-height:100vh}.cs-help{color:#9aa0a6;color:var(--muted);font-size:12px;margin-top:6px}.cs-errbound{align-items:center;display:flex;justify-content:center;min-height:70vh;padding:24px}.cs-errbound-card{background:#14141b;border:1px solid #2a2a33;border-radius:12px;max-width:560px;padding:24px;width:100%}.cs-errbound-card h1{font-size:20px;margin:0 0 8px}.cs-errbound-msg{background:#0c0c12;border:1px solid #26262f;border-radius:8px;color:#ff6b6b;color:var(--danger,#ff6b6b);font-size:12px;margin:14px 0;max-height:180px;overflow:auto;padding:10px 12px;white-space:pre-wrap;word-break:break-word}.cs-errbound-actions{display:flex;gap:8px}.cs-drop-wrap{align-items:flex-start;background:radial-gradient(1200px 600px at 50% -10%,#11202a,#0b0b0f);background:radial-gradient(1200px 600px at 50% -10%,#11202a,var(--bg));display:flex;justify-content:center;min-height:100vh;padding:48px 20px}.cs-drop-card{background:#16161d;background:var(--bg-elev);border:1px solid #ffffff14;border-radius:16px;box-shadow:0 20px 60px #00000073;max-width:720px;padding:28px 28px 32px;width:100%}.cs-drop-brand{color:#14e0c8;color:var(--surf);font-size:22px;font-weight:800;letter-spacing:.5px;margin-bottom:18px}.cs-drop-brand span{color:#f5f5f7;color:var(--text)}.cs-drop-card h1{font-size:24px;margin:0 0 8px}.cs-drop-field{color:#9aa0a6;color:var(--muted);display:block;font-size:13px;margin:16px 0}.cs-drop-field .cs-input,.cs-droplink-form .cs-input{margin-top:6px}.cs-drop-offline{color:#e0a414}.cs-drop-notice,.cs-drop-offline{background:#e0a4141f;border:1px solid #e0a41466;border-radius:10px;font-size:13px;margin:14px 0;padding:10px 14px}.cs-drop-notice{align-items:center;color:#e7c46b;display:flex;gap:12px;line-height:1.4}.cs-drop-notice span{flex:1 1}.cs-drop-notice.is-warn{background:#e0783c1f;border-color:#e0783c73;color:#ecaa84}.cs-drop-resume{background:#2dd4bf1a;border:1px solid #2dd4bf59;border-radius:10px;color:#f5f5f7;color:var(--text);font-size:13px;margin:14px 0;padding:10px 14px}.cs-us{display:flex;flex-direction:column;gap:12px;margin:16px 0 4px}.cs-us-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}@media (max-width:720px){.cs-us-row{grid-template-columns:1fr}}.cs-us-chart,.cs-us-conn,.cs-us-eff,.cs-us-packets{background:#14141a;border:1px solid #22222c;border-radius:12px;min-width:0;padding:12px 14px}.cs-us-chart-head{align-items:center;color:#9aa0a6;color:var(--muted);display:flex;font-size:12px;justify-content:space-between;margin-bottom:8px}.cs-us-chart-head strong{color:#f5f5f7;color:var(--text);font-size:14px}.cs-us-chart-head strong.warn{color:#e0a414}.cs-us-dim{color:#9aa0a6;color:var(--muted)}.cs-us-chart-svg{display:block;height:96px;width:100%}.cs-us-chart-foot{color:#9aa0a6;color:var(--muted);display:flex;font-size:11px;justify-content:space-between;margin-top:4px}.cs-us-conn-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.cs-us-stat{background:#0e0e13;border-radius:8px;display:flex;flex-direction:column;gap:2px;padding:8px 10px}.cs-us-stat span{color:#9aa0a6;color:var(--muted);font-size:11px}.cs-us-stat strong{color:#f5f5f7;color:var(--text);font-size:15px}.cs-us-grid{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px}.cs-us-cell{border-radius:2px;height:11px;overflow:hidden;position:relative;width:11px}.cs-us-cell,.cs-us-cell.st-queued{background:#2a2a33}.cs-us-cell.st-done{background:#2dd4bf}.cs-us-cell.st-retry{background:#e0a414}.cs-us-cell.st-active{animation:csUsPulse 1.1s ease-in-out infinite;background:#1b3a4b}.cs-us-cell.st-active:after{background:#38bdf8;content:"";inset:0;position:absolute;width:0;width:var(--fill,0)}@keyframes csUsPulse{0%,to{box-shadow:0 0 0 0 #38bdf880}50%{box-shadow:0 0 0 2px #38bdf826}}.cs-us-legend{color:#9aa0a6;color:var(--muted);display:flex;flex-wrap:wrap;font-size:11px;gap:12px}.cs-us-legend span{align-items:center;display:inline-flex;gap:5px}.cs-us-legend i{border-radius:2px;display:inline-block;height:10px;width:10px}.cs-us-legend i.st-done{background:#2dd4bf}.cs-us-legend i.st-active{background:#38bdf8}.cs-us-legend i.st-retry{background:#e0a414}.cs-us-legend i.st-queued{background:#2a2a33}.cs-droplinks{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;padding:18px}.cs-droplink-form{background:#ffffff08;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;padding:14px}.cs-droplink-form label{color:#9aa0a6;color:var(--muted);display:flex;flex:1 1 200px;flex-direction:column;font-size:12px}.cs-droplink-row{align-items:center;border-top:1px solid #ffffff0f;display:flex;gap:14px;padding:12px 0}.cs-droplink-row.dead{opacity:.55}.cs-droplink-url{color:#14e0c8;color:var(--surf);font-family:monospace;font-size:12px;margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-fc-section{margin-bottom:18px}.cs-fc-sechead{align-items:center;border-bottom:1px solid #23232c;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px;padding-bottom:7px}.cs-fc-sectoggle{align-items:baseline;background:none;border:0;color:inherit;cursor:pointer;display:flex;flex-wrap:wrap;gap:9px;margin:0;min-width:0;padding:0}.cs-fc-sectoggle h2{font-size:17px;letter-spacing:.01em;margin:0}.cs-fc-secchev{color:#9aa0a6;color:var(--muted);font-size:13px;transition:color .15s ease}.cs-fc-sectoggle:hover .cs-fc-secchev,.cs-fc-sectoggle:hover h2{color:#14e0c8;color:var(--surf)}.cs-fc-secsub{color:#9aa0a6;color:var(--muted);font-size:12px}.cs-fc-secright{flex:0 0 auto}@media (max-width:760px){.cs-nav{flex-wrap:wrap;gap:12px;padding:10px 16px}.cs-page{padding:72px 16px 48px}.cs-nav-burger{display:inline-flex}.cs-nav.open{background:#0b0b0f;background:var(--bg)}.cs-nav-spacer{display:none}.cs-nav-links{display:none;flex-basis:100%;flex-direction:column;font-size:16px;gap:2px}.cs-nav.open .cs-nav-links{display:flex}.cs-nav-links a{border-bottom:1px solid #1b1b22;padding:12px 6px}.cs-nav-user{display:none;flex-basis:100%;justify-content:space-between;padding-top:8px}.cs-nav.open .cs-nav-user{display:flex}.cs-nav-email{max-width:60%}.cs-modal-backdrop{padding:12px}.cs-modal{max-height:92vh;padding:20px 16px}}.ah-hero{height:340px;margin-top:-68px;overflow:hidden;position:relative}.ah-hero img{display:block;height:100%;object-fit:cover;width:100%}.ah-hero-scrim{background:linear-gradient(180deg,#0b0b0f8c,#0b0b0f26 45%,#0b0b0feb);inset:0;position:absolute}.ah-hero-text{bottom:22px;left:48px;position:absolute;right:48px}.ah-hero-text h1{font-size:38px;letter-spacing:.5px;margin:0}.ah-hero-text p{margin:4px 0 10px}.ah-hero-stats,.ah-hero-text p{color:#9aa0a6;color:var(--muted)}.ah-hero-stats{display:flex;flex-wrap:wrap;font-size:13px;gap:18px}.ah-group-title{color:#9aa0a6;color:var(--muted);font-size:14px;letter-spacing:1.4px;margin:0 0 12px;text-transform:uppercase}.ah-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.ah-space-card{border:1px solid #0000;padding:16px;text-decoration:none;transition:transform .15s ease,border-color .15s ease}.ah-space-card:hover{border-color:#14e0c859;transform:translateY(-2px)}.ah-space-head{align-items:center;color:#f5f5f7;color:var(--text);display:flex;gap:10px}.ah-space-icon{font-size:20px}.ah-status{font-size:11px;letter-spacing:.8px;text-transform:uppercase}.ah-space-meta{color:#9aa0a6;color:var(--muted);display:flex;font-size:12px;gap:12px;margin-top:10px}.ah-tabs{border-bottom:1px solid #23232c;display:flex;flex-wrap:wrap;gap:4px;margin-top:20px}.ah-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#9aa0a6;color:var(--muted);cursor:pointer;font-size:14px;font-weight:600;margin-bottom:-1px;padding:10px 16px}.ah-tab:hover{color:#f5f5f7;color:var(--text)}.ah-tab.active{border-bottom-color:#14e0c8;border-bottom-color:var(--surf);color:#14e0c8;color:var(--surf)}.ah-status-select{font-size:13px;padding:8px 10px;width:auto}.ah-budget-input{font-size:13px;padding:8px 10px;width:110px}.ah-photo-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.ah-photo{background:#16161d;background:var(--bg-elev);border-radius:8px;border-radius:var(--card-radius);cursor:pointer;margin:0;overflow:hidden}.ah-photo .ah-tile-placeholder,.ah-photo img{aspect-ratio:1;display:block;object-fit:cover;width:100%}.ah-photo figcaption{color:#9aa0a6;color:var(--muted);font-size:11px;overflow:hidden;padding:6px 8px;text-overflow:ellipsis;white-space:nowrap}.ah-collage{margin-top:26px}.ah-collage-head{align-items:baseline;display:flex;gap:12px;margin-bottom:10px}.ah-collage-more{font-size:12px;text-decoration:none}.ah-collage-more:hover{color:#f5f5f7;color:var(--text)}.ah-collage-grid{grid-gap:8px;display:grid;gap:8px;grid-auto-rows:110px;grid-template-columns:repeat(6,1fr)}.ah-collage-tile{background:#16161d;background:var(--bg-elev);border-radius:8px;border-radius:var(--card-radius);display:block;overflow:hidden}.ah-collage-tile:first-child{grid-column:span 2;grid-row:span 2}.ah-collage-tile .ah-tile-placeholder,.ah-collage-tile img{display:block;height:100%;object-fit:cover;transition:transform .2s ease;width:100%}.ah-collage-tile:hover img{transform:scale(1.04)}.ah-room-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.ah-room-card{display:flex;flex-direction:column;overflow:hidden;padding:0}.ah-room-card-img{background:#16161d;background:var(--bg-elev);display:block;height:170px;overflow:hidden}.ah-room-card-img img{display:block;height:100%;object-fit:cover;transition:transform .25s ease;width:100%}.ah-room-card-img:hover img{transform:scale(1.04)}.ah-room-card-fallback{align-items:center;display:flex;font-size:44px;height:100%;justify-content:center}.ah-room-card-body{padding:12px 14px 14px}.ah-room-card-links{display:flex;flex-wrap:wrap;font-size:12.5px;gap:6px 14px}.ah-room-card-links a{color:#14e0c8;color:var(--surf);text-decoration:none}.ah-room-card-links a:hover{color:#f5f5f7;color:var(--text);text-decoration:underline}.ah-mood-grid{column-gap:10px;columns:200px 4;margin-top:14px}.ah-mood-tile{background:#16161d;background:var(--bg-elev);border-radius:8px;border-radius:var(--card-radius);break-inside:avoid;cursor:zoom-in;margin:0 0 10px;overflow:hidden;page-break-inside:avoid}.ah-mood-tile .ah-tile-placeholder,.ah-mood-tile img{display:block;width:100%}.ah-mood-tile figcaption{color:#9aa0a6;color:var(--muted);font-size:12px;padding:8px 10px}.ah-tile-placeholder{align-items:center;background:#16161d;background:var(--bg-elev);color:#9aa0a6;color:var(--muted);display:flex;font-size:28px;justify-content:center;min-height:120px}.ah-mood-picker{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));max-height:240px;overflow-y:auto}.ah-mood-pick{background:#16161d;background:var(--bg-elev);border:2px solid #0000;border-radius:6px;cursor:pointer;overflow:hidden;padding:0}.ah-mood-pick:hover{border-color:#14e0c8;border-color:var(--surf)}.ah-mood-pick.used{cursor:default;opacity:.35}.ah-mood-pick .ah-tile-placeholder,.ah-mood-pick img{aspect-ratio:1;display:block;min-height:0;object-fit:cover;width:100%}.ah-lightbox{display:flex;flex-wrap:wrap;gap:18px}.ah-lightbox img{border-radius:8px;border-radius:var(--card-radius);flex:1 1 300px;max-height:70vh;max-width:min(60vw,640px);object-fit:contain}.ah-lightbox-side{display:flex;flex:1 1 220px;flex-direction:column;gap:10px;min-width:220px}.ah-list-row{align-items:center;display:flex;gap:6px;padding:4px 0}.ah-list-row .cs-input{font-size:13px;padding:8px 10px}.ah-list-name{flex:3 1 160px}.ah-list-price{flex:0 0 84px}.ah-list-qty{flex:0 0 60px}.ah-list-status{flex:0 0 118px}.ah-list-link{flex:2 1 110px}.ah-ctl-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:14px}.ah-ctl-header h1{font-size:26px;margin:0 0 4px}.ah-ctl-bridge{border:1px solid #ffffff14;border:1px solid var(--border,#ffffff26);border-radius:999px;font-size:12px;padding:3px 10px}.ah-ctl-bridge.ok{border-color:#7ce38b66;color:#7ce38b}.ah-ctl-bridge.down{border-color:#ff6b6b66;color:#ff6b6b}.ah-ctl-section{color:#5eead4bf;font-size:13px;letter-spacing:.08em;margin:18px 0 8px;text-transform:uppercase}.ah-ctl-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(185px,1fr))}.ah-fav-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));margin-bottom:14px}.ah-fav-tile{background:#ffffff08;background:var(--card,#ffffff08);border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:10px;display:flex;flex-direction:column;min-width:0;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.ah-fav-tile.on{border-color:#14e0c88c;box-shadow:0 0 10px #14e0c81f}.ah-fav-head{align-items:flex-start;display:flex;flex:1 1;gap:6px;min-width:0;padding:7px 8px 5px}.ah-fav-toggle{height:17px;margin-top:1px;width:30px}.ah-fav-toggle .ah-ctl-knob{height:11px;width:11px}.ah-fav-toggle.on .ah-ctl-knob{left:15px}.ah-fav-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#e2e8f0;display:-webkit-box;font-size:11.5px;font-weight:600;line-height:1.2;min-width:0;overflow:hidden}.ah-fav-state{align-self:center;color:#64748b;flex:1 1;font-size:10.5px;text-align:center}.ah-fav-tile.on .ah-fav-state{color:#14e0c8e6}.ah-fav-adjust{align-items:stretch;border-top:1px solid #ffffff14;border-top:1px solid var(--border,#ffffff1a);display:flex;min-height:24px}.ah-fav-adjust button{background:none;border:0;color:#94a3b8;cursor:pointer;flex:1 1;font-size:15px;font-weight:700;line-height:1;padding:3px 0}.ah-fav-adjust button:first-child{border-right:1px solid #ffffff14;border-right:1px solid var(--border,#ffffff1a)}.ah-fav-adjust button:last-child{border-left:1px solid #ffffff14;border-left:1px solid var(--border,#ffffff1a)}.ah-fav-adjust button:active{background:#14e0c81f;color:#e2e8f0}.ah-fav-snooze{background:none;border:0;border-top:1px solid #ffffff14;border-top:1px solid var(--border,#ffffff1a);color:#64748b;cursor:pointer;font-size:10px;font-weight:600;letter-spacing:.03em;padding:4px 0}.ah-fav-snooze.active{background:#fbbf2414;color:#fbbf24}.ah-ctl-star{background:none;border:0;color:#475569;cursor:pointer;font-size:15px;line-height:1;padding:0 2px}.ah-ctl-star.active{color:#fbbf24}.ah-ctl-dead-head{align-items:center;display:flex;gap:12px;margin-top:30px}.ah-ctl-dead-head .ah-ctl-section{margin:0}.ah-ctl-section-dead{color:#9aa0a6;color:var(--muted)}.ah-ctl-dead-card{opacity:.55}.ah-ctl-dead-card:hover{opacity:.85}.ah-ctl-card{background:#ffffff08;background:var(--card,#ffffff08);border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:10px;min-width:0;padding:8px 10px;transition:border-color .2s ease,box-shadow .2s ease}.ah-ctl-card.on{border-color:#14e0c88c;box-shadow:0 0 14px #14e0c824}.ah-ctl-card:hover{border-color:#14e0c859}.ah-ctl-card.busy{opacity:.75}.ah-ctl-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.ah-ctl-name{flex:1 1;font-size:13px;font-weight:600;min-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ah-ctl-scene-btns{display:inline-flex;flex:none;flex-wrap:wrap;gap:6px}.ah-ctl-scene-btns .cs-btn{font-size:12px;padding:4px 10px}.ah-ctl-flag{border:1px solid #ffffff14;border:1px solid var(--border,#ffffff26);border-radius:999px;color:#9aa0a6;color:var(--muted);flex:none;font-size:10px;padding:1px 7px}.ah-ctl-motion,.ah-fan-aqi.ok{border-color:#7fd88f73;color:#7fd88f}.ah-fan-aqi.warn{border-color:#e8c76a73;color:#e8c76a}.ah-fan-aqi.bad{border-color:#e87a6a80;color:#e87a6a}.ah-fan-stats{color:#9aa0a6;color:var(--muted);display:flex;flex-wrap:wrap;font-size:11px;gap:4px 12px}.ah-fan-filter-warn{color:#e87a6a}.ah-dj-card{max-width:560px}.ah-dj-deck.on,.ah-dj-live{border-color:#7fd88f73;color:#7fd88f}.ah-dj-deck.off{border-color:#e0a06673;color:#e0a066}.ah-dj-stopped{opacity:.45}.ah-dj-allon{border-color:#7fd88f80;color:#7fd88f;opacity:.8}.ah-dj-room{align-items:center;color:#9aa0a6;color:var(--muted,#9aa3ad);display:flex;font-size:12px;gap:8px;margin:6px 0 2px}.ah-dj-room-meter{background:#7fd88f1f;border-radius:3px;height:6px;overflow:hidden;width:110px}.ah-dj-room-meter>span{background:#7fd88f;border-radius:3px;display:block;height:100%;transition:width .6s ease}.ah-dj-room-db{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:46px}.ah-dj-room-spark{stroke:#7fd88fb3;stroke-width:1;height:14px;width:60px}.ah-dj-progress{color:#9aa0a6;color:var(--muted,#9aa3ad);font-size:12px;margin:6px 0 2px}.ah-dj-progress.warn{color:#e0a066}.ah-dj-progress.err{color:#e07f7f}.ah-dj-wave{background:#00000047;border-radius:8px;display:block;height:72px;margin:8px 0 4px;width:100%}.ah-dj-now{color:#9aa0a6;color:var(--muted);font-size:12px}.ah-dj-zone{align-items:center;display:flex;gap:10px;margin-top:8px}.ah-dj-zbtn{border-radius:8px;flex:0 0 30px;font-size:11px;height:30px;justify-content:center;line-height:1;padding:0;width:30px}.ah-dj-zname{color:#9aa0a6;color:var(--muted);flex:0 0 118px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ah-dj-zname.on{color:#7fd88f;font-weight:600}.ah-dj-glyph{font-size:10px;line-height:1}.ah-dj-zone .ah-ctl-dim{flex:1 1}.ah-ctl-row{align-items:center;display:flex;gap:8px;margin-top:7px}.ah-ctl-toggle{background:#ffffff14;border:1px solid #ffffff14;border:1px solid var(--border,#fff3);border-radius:999px;cursor:pointer;flex:none;height:22px;padding:0;position:relative;transition:background .2s ease;width:40px}.ah-ctl-toggle .ah-ctl-knob{background:#fff;border-radius:50%;height:16px;left:2px;position:absolute;top:2px;transition:left .18s ease;width:16px}.ah-ctl-toggle.on{background:#14e0c8;background:var(--surf,#14e0c8);border-color:#14e0c8;border-color:var(--surf,#14e0c8)}.ah-ctl-toggle.on .ah-ctl-knob{left:20px}.ah-ctl-toggle:disabled{cursor:default}.ah-ctl-dim{align-items:center;display:flex;flex:1 1;gap:8px;min-width:0}.ah-ctl-dim input[type=range]{accent-color:#14e0c8;accent-color:var(--surf,#14e0c8);flex:1 1;min-width:60px}.ah-ctl-pct{flex:none;text-align:right;width:32px}.ah-ctl-pct,.ah-shade-state{color:#9aa0a6;color:var(--muted);font-size:11px}.ah-shade-state{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ah-clim-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.ah-clim-row select{background:#0000;border:1px solid #ccc;border:1px solid var(--line,#ccc);border-radius:6px;color:inherit;font-size:11px;padding:3px 6px}.ah-media-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.ah-media-np{color:#9aa0a6;color:var(--muted);font-size:11px;margin:2px 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ah-media-hero{margin-top:12px;padding:14px 16px}.ah-media-hero .ah-media-np{color:inherit;font-size:15px;font-weight:600;margin:8px 0 4px}.ah-media-hero .ah-media-np.idle{color:#9aa0a6;color:var(--muted);font-weight:400}.ah-media-hero-cols{align-items:flex-start;display:flex;gap:20px;margin-top:4px}.ah-media-hero-main{flex:1 1;min-width:0}.ah-media-hero-side{border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:10px;flex-shrink:0;padding:10px 12px}.ah-media-hero .ah-tv-remote{margin-top:0}.ah-media-hero .ah-tv-remote .cs-btn{min-height:38px;min-width:46px}.ah-media-hero .ah-media-btns{gap:10px;justify-content:flex-start}.ah-media-hero .ah-tv-search input,.ah-media-hero .ah-tv-search select,.ah-media-hero .ah-tv-tools select,.ah-media-hero .cs-btn-sm{min-height:32px}.ah-media-hero .ah-tv-search,.ah-media-hero .ah-tv-tools,.ah-tv-apps{margin-top:10px}.ah-tv-apps{display:flex;flex-wrap:wrap;gap:6px}.ah-tv-rail-wrap{margin-top:12px}.ah-tv-rail-head{align-items:baseline;display:flex;font-size:13px;font-weight:600;gap:10px;justify-content:space-between;margin-bottom:7px}.ah-tv-rail-ago{color:#9aa0a6;color:var(--muted);font-size:11px;font-weight:400}.ah-tv-rail{-webkit-overflow-scrolling:touch;display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.ah-tv-rail .ah-tv-rail-video{flex:0 0 200px}.ah-tv-poster{align-items:stretch;background:#ffffff0d;border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:10px;color:inherit;cursor:pointer;display:flex;flex:0 0 112px;flex-direction:column;font-size:12px;overflow:hidden;padding:0 0 7px;text-align:left;transition:transform .12s ease,border-color .12s ease}.ah-tv-poster:hover{border-color:#ffffff47;transform:translateY(-2px)}.ah-tv-poster img{aspect-ratio:2/3;display:block;object-fit:cover;width:100%}.ah-tv-poster-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-weight:600;line-height:1.25;overflow:hidden;padding:6px 8px 0}.ah-tv-poster .ah-tv-result-meta,.ah-tv-rail-video .ah-tv-result-meta{padding:3px 8px 0}@media (max-width:640px){.ah-media-hero-cols{align-items:stretch;flex-direction:column}.ah-media-hero-side{align-self:center}}.ah-media-btns{gap:8px;justify-content:space-between}.ah-media-btns,.ah-media-vol{align-items:center;display:flex}.ah-media-vol{gap:6px}.ah-media-volpct{color:#9aa0a6;color:var(--muted);font-size:11px;min-width:32px;text-align:center}.ah-tv-search{display:flex;gap:6px;margin-top:8px}.ah-tv-search input{flex:1 1;min-width:0}.ah-tv-search input,.ah-tv-search select,.ah-tv-tools select{background:#ffffff0d;border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:7px;color:inherit;font-size:12px;padding:5px 7px}.ah-tv-search-err{color:#e0a636;color:var(--warn,#e0a636);font-size:12px;margin-top:6px}.ah-tv-results{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-top:10px}.ah-tv-result{align-items:stretch;background:#ffffff0d;border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:10px;color:inherit;cursor:pointer;display:flex;flex-direction:column;font-size:12px;gap:0;overflow:hidden;padding:0 0 8px;text-align:left;transition:transform .12s ease,border-color .12s ease}.ah-tv-result:hover{background:#ffffff17;border-color:#ffffff47;transform:translateY(-2px)}.ah-tv-result-thumb{display:block;position:relative}.ah-tv-result-thumb img{aspect-ratio:16/9;display:block;object-fit:cover;width:100%}.ah-tv-result-dur{font-feature-settings:"tnum";background:#000c;border-radius:4px;bottom:6px;color:#fff;font-size:11px;font-variant-numeric:tabular-nums;padding:1px 5px;position:absolute;right:6px}.ah-tv-result-play{align-items:center;background:#00000059;color:#fff;display:flex;font-size:26px;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .15s ease}.ah-tv-result:hover .ah-tv-result-play{opacity:1}.ah-tv-result-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-weight:600;line-height:1.3;overflow:hidden;padding:7px 9px 0}.ah-tv-result-meta{color:#9aa0a6;color:var(--muted);font-size:11px;overflow:hidden;padding:3px 9px 0;text-overflow:ellipsis;white-space:nowrap}.ah-tv-results-cancel{grid-column:1/-1;justify-self:start}.ah-tv-tools{align-items:center;display:flex;gap:6px;margin-top:6px}.ah-tv-tools select{flex:1 1;min-width:0}.ah-tv-remote{align-items:center;flex-direction:column;margin-top:8px}.ah-tv-remote,.ah-tv-remote-row{display:flex;gap:4px}.ah-tv-remote-gap,.ah-tv-remote-row .cs-btn{text-align:center;width:52px}.ah-cam-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-bottom:10px}.ah-cam-card{background:#ffffff08;background:var(--card,#ffffff08);border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:10px;min-width:0;padding:8px 10px 9px;transition:border-color .2s ease,box-shadow .2s ease}.ah-cam-card.motion{border-color:#ff6060a6;box-shadow:0 0 14px #ff60602e}.ah-cam-thumb{align-items:center;aspect-ratio:16/9;background:#ffffff0a;border-radius:7px;display:flex;justify-content:center;margin-bottom:7px;overflow:hidden;position:relative}.ah-cam-thumb img{display:block;height:100%;object-fit:cover;width:100%}.ah-cam-nosnap{color:#9aa0a6;color:var(--muted);font-size:11px;padding:0 12px;text-align:center}.ah-cam-motion{background:#dc3232e6;font-weight:700;left:6px;letter-spacing:.06em}.ah-cam-motion,.ah-cam-offline{border-radius:5px;color:#fff;font-size:10px;padding:2px 6px;position:absolute;top:6px}.ah-cam-age,.ah-cam-offline{background:#0000008c;right:6px}.ah-cam-age{border-radius:5px;bottom:6px;color:#ffffffe6;font-size:10px;padding:2px 6px;position:absolute}.ah-cam-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.ah-cam-meta{color:#9aa0a6;color:var(--muted);font-size:11px;margin-top:3px}.ah-net-list{display:flex;flex-direction:column;gap:8px}.ah-net-row{align-items:flex-start;background:#16161d;background:var(--bg-elev);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;border-radius:var(--card-radius);display:flex;gap:10px;padding:10px 12px}.ah-net-row.planned{opacity:.65}.ah-net-dot{background:#ffffff14;background:var(--border);border-radius:50%;flex:none;height:8px;margin-top:5px;width:8px}.ah-net-dot.ok{background:#34c759}.ah-net-dot.down{background:#ff3b30}.ah-net-dot.planned{background:#0000;border:1px dashed #9aa0a6;border:1px dashed var(--muted)}.ah-net-main{min-width:0}.ah-net-name{align-items:center;display:flex;flex-wrap:wrap;font-size:14px;font-weight:600;gap:8px}.ah-net-tag{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:999px;color:#9aa0a6;color:var(--muted);font-size:10px;font-weight:500;padding:1px 7px;white-space:nowrap}.ah-net-tag.ok{border-color:#34c75955;color:#34c759}.ah-net-tag.down{border-color:#ff3b3055;color:#ff3b30}.ah-net-meta{color:#9aa0a6;color:var(--muted);font-size:12px;margin-top:2px;word-break:break-word}.ah-net-notes{color:#f5f5f7;color:var(--text);font-size:12px;margin-top:4px;opacity:.8}.ah-flow-section{margin-bottom:8px}.ah-flow-head{align-items:center;display:flex;gap:12px;justify-content:space-between}.ah-flow-head .ah-ctl-section{flex:1 1}.ah-flow-wrap{background:#16161d;background:var(--bg-elev);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;border-radius:var(--card-radius);height:380px;overflow:hidden}.ah-flow-legend{color:#9aa0a6;color:var(--muted);font-size:11px;margin:6px 2px 14px}.ah-flow-legend .eth{color:#5ac8facc;letter-spacing:-2px}.ah-flow-legend .wifi{color:#ffffff8c;letter-spacing:-1px}.ah-flow-conn{color:#5ac8fad9;font-size:8px;font-weight:600;letter-spacing:.04em;position:absolute;right:7px;text-transform:uppercase;top:5px}.ah-flow-conn.wifi{color:#ffffff80}.ah-flow-modal{background:#0b0b0f;background:var(--bg);display:flex;flex-direction:column;inset:0;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom));position:fixed;z-index:1000}.ah-flow-modal-head{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:6px 4px 10px}.ah-flow-modal-head h2{font-size:17px;margin:0}.ah-flow-modal-body{border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;border-radius:var(--card-radius);flex:1 1;overflow:hidden}.ah-flow-modal-body,.ah-flow-wrap .react-flow__background{background:#16161d;background:var(--bg-elev)}.ah-flow-node{background:#ffffff0a;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:8px;border-radius:var(--card-radius);box-sizing:border-box;font-family:inherit;padding:8px 10px;position:relative;width:168px}.ah-flow-node.planned{border-style:dashed;opacity:.55}.ah-flow-node.root{background:#5ac8fa14;border-color:#5ac8fa59}.ah-flow-name{align-items:center;color:#f5f5f7;color:var(--text);display:flex;font-size:12px;font-weight:600;gap:6px;line-height:1.25}.ah-flow-name .ah-net-dot{margin-top:0}.ah-flow-sub{color:#9aa0a6;color:var(--muted);font-size:10px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ah-flow-handle{background:#9aa0a6!important;background:var(--muted)!important;border:none!important;height:5px!important;width:5px!important}.ah-ctl-color-row{gap:10px}.ah-ctl-color input[type=color]{background:none;border:1px solid #ffffff14;border:1px solid var(--border,#fff3);border-radius:6px;cursor:pointer;height:22px;padding:0;width:28px}.ah-ctl-ct input[type=range]{accent-color:#f5c97b}.ah-ctl-ct .ah-ctl-pct{width:44px}.ah-ctl-spinner{animation:ah-ctl-spin .8s linear infinite;border:2px solid #ffffff40;border-radius:50%;border-top:2px solid var(--surf,#14e0c8);flex:none;height:14px;width:14px}@keyframes ah-ctl-spin{to{transform:rotate(1turn)}}.ah-ctl-tabs{-webkit-overflow-scrolling:touch;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border,#ffffff1f);display:flex;gap:4px;margin:8px 0 12px;overflow-x:auto;scrollbar-width:none}.ah-ctl-tabs::-webkit-scrollbar{display:none}.ah-ctl-tab{-webkit-appearance:none;appearance:none;background:none;border:none;border-bottom:2px solid #0000;color:#9aa0a6;color:var(--muted,#fff9);cursor:pointer;flex:none;font:inherit;font-size:14px;padding:8px 14px;white-space:nowrap}.ah-ctl-tab.active{border-bottom-color:#14e0c8;border-bottom-color:var(--surf,#14e0c8);color:#5eead4;color:var(--surf-soft,#5eead4)}.ah-map-wrap{max-width:980px}.ah-map-toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.ah-map-hint{color:#9aa0a6;color:var(--muted,#fff9);font-size:13px}.ah-map{background:#10151c;border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:14px;display:block;height:auto;width:100%}.ah-map.mode-devices{cursor:crosshair}.ah-map-modes{display:flex;flex-wrap:wrap;gap:6px}.ah-map-zone.editable{cursor:move}.ah-map.mode-rooms .ah-map-dot{opacity:.45;pointer-events:none}.ah-map-zone-handle{fill:#60a5fa;stroke:#dbeafe;stroke-width:1;cursor:nwse-resize}.ah-map-zone-del{cursor:pointer}.ah-map-zone-del circle{fill:#7f1d1d;stroke:#fca5a5;stroke-width:1}.ah-map-zone-del text{fill:#fecaca;text-anchor:middle;font-size:12px;-webkit-user-select:none;user-select:none}.ah-map.mode-site{cursor:default}.ah-map.mode-measure{cursor:crosshair}.ah-map-vertex{fill:#0ea5e9;stroke:#e0f2fe;stroke-width:1.5;cursor:grab}.ah-map-vertex.hill{fill:#65a30d}.ah-map-vertex.wall{fill:#a16207}.ah-map-vertex.structure{fill:#14b8a6}.ah-map-structure{fill:#14b8a612;stroke:#14b8a6;stroke-width:1.5;stroke-dasharray:7 5}.ah-map-structure-label{fill:#5eead4;text-anchor:middle;font-size:13px;pointer-events:none;-webkit-user-select:none;user-select:none}.ah-map-edge-hit{stroke:#0000;stroke-width:14;cursor:copy}.ah-map-edge-len.lot{fill:#bef264}.ah-map-edge-len.hill{fill:#86efac}.ah-map-edge-len.wall{fill:#fcd34d}.ah-map-edge-len{fill:#5eead4;text-anchor:middle;stroke:#0f172a;stroke-width:3px;cursor:pointer;font-size:11.5px;font-weight:600;paint-order:stroke;-webkit-user-select:none;user-select:none}.ah-map.mode-measure .ah-map-dot,.ah-map.mode-site .ah-map-dot{display:none}.ah-map.mode-site .ah-map-pool,.ah-map.mode-site .ah-map-zone{opacity:.22;pointer-events:none}.ah-map.mode-site .ah-map-zone-label{opacity:.18}.ah-map-lot.active{stroke:#bef264;stroke-width:2.5}.ah-map-hill.active{stroke:#86efac;stroke-width:2}.ah-map-wall.active{stroke:#fcd34d}.ah-map-structure.active{stroke:#5eead4;stroke-width:2.5}.ah-map-shape-picker{display:inline-flex;gap:6px}.ah-map-shape-picker .cs-btn{align-items:center;display:inline-flex;gap:6px}.ah-map-shape-swatch{border-radius:50%;display:inline-block;height:9px;width:9px}.ah-map-shape-swatch.lot{background:#bef264}.ah-map-shape-swatch.hill{background:#86efac}.ah-map-shape-swatch.wall{background:#fcd34d}.ah-map-shape-swatch.structure{background:#5eead4}.ah-map-shape-swatch.photo{background:#94a3b8}.ah-map-shape-swatch.streets{background:#64748b}.ah-map-shape-swatch.rooms{background:#ffffffb3}.ah-map-shape-swatch.devices{background:#ffd166}.ah-map-layers-anchor{display:inline-block;position:relative}.ah-map-layers-panel{background:#0f172a;border:1px solid #ffffff24;border-radius:10px;box-shadow:0 10px 28px #0000008c;display:flex;flex-direction:column;gap:7px;min-width:185px;padding:10px 12px;position:absolute;right:0;top:calc(100% + 6px);z-index:20}.ah-map-layers-panel label{align-items:center;color:#cbd5e1;cursor:pointer;display:flex;font-size:.84rem;gap:8px;white-space:nowrap}.ah-map-layers-panel input[type=checkbox]{accent-color:#5eead4}.ah-map-ref line{stroke:#f59e0b;stroke-width:1.5;stroke-dasharray:5 4}.ah-map-ref circle{fill:#f59e0b}.ah-map-ref-label{fill:#fbbf24;text-anchor:middle;stroke:#0f172a;stroke-width:3px;cursor:pointer;font-size:13px;font-weight:600;paint-order:stroke;-webkit-user-select:none;user-select:none}.ah-map-measure-start circle{fill:none}.ah-map-measure-start circle,.ah-map-measure-start line{stroke:#f59e0b;stroke-width:1.5}.ah-map-scalebar line{stroke:#94a3b8;stroke-width:1.5}.ah-map-scalebar text{fill:#94a3b8;text-anchor:middle;font-size:12px}.ah-aqua-thermo-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.ah-aqua-temp-row{align-items:center;display:flex;gap:10px;margin:10px 0;min-width:0}.ah-aqua-now{color:#e2e8f0;font-size:28px;font-weight:700}.ah-aqua-now .ah-aqua-ago{display:block;line-height:1;margin-top:2px}.ah-aqua-arrow{color:#64748b}.ah-aqua-set{align-items:center;display:flex;gap:8px}.ah-aqua-sp{color:#fbbf24;font-size:20px;font-weight:600;min-width:44px;text-align:center}.ah-aqua-heating{color:#f97316;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.ah-aqua-sensors{display:flex;flex-wrap:wrap;gap:10px}.ah-aqua-sensor{background:#0f172a;border:1px solid #1e293b;border-radius:10px;display:flex;flex-direction:column;gap:2px;padding:10px 14px}.ah-aqua-sensor-name{color:#94a3b8;font-size:12px}.ah-aqua-sensor-val{color:#e2e8f0;font-size:18px;font-weight:600}.ah-aqua-ago{color:#64748b;font-size:11px;font-weight:500;white-space:nowrap}.ah-map-dim-live{fill:#7dd3fc;text-anchor:middle;stroke:#0f172a;stroke-width:3px;cursor:pointer;font-size:12px;font-weight:600;paint-order:stroke;-webkit-user-select:none;user-select:none}.ah-map-street{stroke:#ffffff1a;stroke-width:26;fill:none}.ah-map-street-label{fill:#ffffff59;font-size:15px;letter-spacing:2px}.ah-map-outside-label{fill:#ffffff40;font-size:12px;letter-spacing:1px}.ah-map-lot{fill:#678d5829;stroke:#94be8066;stroke-width:2}.ah-map-wall{stroke:#b9ad9c;stroke-width:5;stroke-dasharray:10 4}.ah-map-hill{fill:#92745247}.ah-map-path{stroke:#ffffff38;stroke-width:10;stroke-linecap:round}.ah-map-zone{rx:6;stroke-width:1.2}.ah-map-zone.room{fill:#ffffff0d;stroke:#ffffff4d}.ah-map-zone.outdoor{fill:#60a5fa0d;stroke:#94be8059;stroke-dasharray:5 4}.ah-map-zone-label{fill:#ffffff73;font-size:11.5px}.ah-map-pool{fill:#38bdf84d;stroke:#7dd3fc99;stroke-width:2}.ah-map-compass line{stroke:#ffffff80;stroke-width:2}.ah-map-compass path{fill:#ffd166}.ah-map-compass text{fill:#fff9;text-anchor:middle;font-size:13px}.ah-map-dot{cursor:pointer}.ah-map.mode-devices .ah-map-dot{cursor:grab}.ah-map-dot-c{fill:#3a4454;stroke:#ffffff80;stroke-width:1.5;transition:fill .2s ease}.ah-map-dot.on .ah-map-dot-c{fill:#ffd166;stroke:#fff3d6;filter:drop-shadow(0 0 6px rgba(255,209,102,.8))}.ah-map-dot-ring{fill:none;stroke:#ffd16680;stroke-width:1.5}.ah-map-dot.busy .ah-map-dot-c{animation:ah-map-pulse .9s ease-in-out infinite}@keyframes ah-map-pulse{50%{opacity:.4}}.ah-map-tray{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ah-map-tray-label{color:#9aa0a6;color:var(--muted,#fff9);font-size:13px}.ah-map-chip{-webkit-appearance:none;appearance:none;background:#ffffff0a;border:1px solid #ffffff14;border:1px solid var(--border,#ffffff2e);border-radius:999px;color:inherit;cursor:pointer;font:inherit;font-size:12.5px;padding:4px 10px}.ah-map-chip.on{border-color:#ffd16699;color:#ffd166}.ah-map-chip.picked{border-color:#60a5fa;box-shadow:0 0 8px #60a5fa66}.ah-pgm-list{display:flex;flex-direction:column;gap:8px}.ah-pgm{background:#ffffff08;background:var(--card,#ffffff08);border:1px solid #ffffff14;border:1px solid var(--border,#ffffff1f);border-radius:12px;overflow:hidden}.ah-pgm.disabled{opacity:.6}.ah-pgm-head{align-items:center;-webkit-appearance:none;appearance:none;background:none;border:none;color:inherit;cursor:pointer;display:flex;font:inherit;gap:10px;padding:11px 14px;text-align:left;width:100%}.ah-pgm-dot{background:#ffffff2e;border-radius:50%;flex:none;height:9px;width:9px}.ah-pgm-dot.true{background:#4ade80;box-shadow:0 0 6px #4ade80b3}.ah-pgm-name{font-weight:600}.ah-pgm-badge{border:1px solid #ffffff40;border-radius:999px;color:#9aa0a6;color:var(--muted,#fff9);font-size:11px;padding:2px 8px}.ah-pgm-badge.run{border-color:#4ade8080;color:#4ade80}.ah-pgm-next{color:#9aa0a6;color:var(--muted,#ffffff8c);font-size:12px;margin-left:auto;white-space:nowrap}.ah-pgm-caret{color:#9aa0a6;color:var(--muted,#ffffff80)}.ah-pgm-body{padding:2px 16px 14px 33px}.ah-pgm-block{display:flex;gap:12px;margin:6px 0}.ah-pgm-kw{color:#5eead4;color:var(--surf-soft,#5eead4);flex:none;font-size:13px;font-weight:700;padding-top:1px;width:42px}.ah-pgm-line{color:#ffffffd9;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13.5px;line-height:1.5}.ah-pgm-comment{color:#9aa0a6;color:var(--muted);font-size:13px;font-style:italic;margin:6px 0}.ah-pgm-meta{color:#9aa0a6;color:var(--muted,#ffffff80);font-size:12px;margin:6px 0 10px}.ah-pgm-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}@media (max-width:720px){.ah-hero{height:260px}.ah-hero-text{left:20px;right:20px}.ah-hero-text h1{font-size:28px}.ah-list-row{flex-wrap:wrap}.ah-mood-grid{columns:140px 2}.ah-collage-grid{grid-auto-rows:90px;grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.ah-ctl-header h1{font-size:20px;margin:0}.ah-ctl-tabs{margin:6px 0 10px}.ah-ctl-section{font-size:11.5px;margin:10px 0 6px}.ah-fav-grid{gap:5px;grid-template-columns:repeat(3,minmax(0,1fr))}.ah-fav-head{padding:6px 7px 4px}.ah-fav-name{font-size:11px}}@media (display-mode:standalone){.cs-nav{padding-top:calc(10px + env(safe-area-inset-top))}}.ah-docs{margin:0 auto;max-width:900px;padding-bottom:60px}.ah-docs-head h1{margin-bottom:6px}.ah-docs-toc{background:#16161d;background:var(--bg-elev);border:1px solid #ffffff14;border-radius:10px;display:flex;flex-wrap:wrap;gap:6px 10px;margin:14px 0 8px;padding:10px 12px}.ah-docs-toc a{color:#14e0c8;color:var(--accent);font-size:12.5px;opacity:.85;text-decoration:none}.ah-docs-toc a:hover{opacity:1;text-decoration:underline}.ah-docs-section{margin-top:28px;scroll-margin-top:80px}.ah-docs-section li,.ah-docs-section p{color:#ffffffc7;font-size:14px;line-height:1.55}.ah-docs-section ul{margin:8px 0;padding-left:20px}.ah-docs-section li{margin-bottom:8px}.ah-docs-section strong{color:#fffffff0}.ah-docs-flow{margin-top:14px}.ah-docs-node{width:176px}.ah-docs-kind{color:#14e0c8;color:var(--accent)}.ah-flow-node.tint-app{border-color:#5ac8fa73}.ah-flow-node.tint-cloud{border-color:#bf5af280}.ah-flow-node.tint-aws{border-color:#ff9f0a73}.ah-flow-node.tint-house{border-color:#30d15873}.va-launcher{align-items:center;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--r-full);bottom:20px;box-shadow:var(--shadow-1);color:var(--text);cursor:pointer;display:flex;font-size:var(--fs-base);gap:8px;padding:10px 16px;position:fixed;right:20px;transition:border-color .2s ease,transform .15s ease;z-index:90}.va-launcher:hover{border-color:var(--surf);transform:translateY(-1px)}.va-launcher-orb{background:var(--surf);border-radius:50%;box-shadow:0 0 8px var(--surf);height:10px;width:10px}.va-launcher-live .va-launcher-orb{animation:va-pulse 1.4s ease-in-out infinite}.va-launcher-muted .va-launcher-orb{animation:none;background:var(--accent);box-shadow:0 0 8px var(--accent)}@keyframes va-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.35)}}.va-panel{background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--card-radius);bottom:72px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;max-height:480px;max-width:calc(100vw - 40px);overflow:hidden;position:fixed;right:20px;width:340px;z-index:90}.va-panel-expanded{height:min(calc(100vh - 112px),760px);max-height:none;width:min(680px,calc(100vw - 40px))}.va-head{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:12px 14px}.va-head-title{font-size:14px;font-weight:600}.va-head-actions{align-items:center;display:flex;gap:2px}.va-head-btn{align-items:center;background:none;border:none;border-radius:var(--r-sm);color:var(--muted);cursor:pointer;display:inline-flex;font-size:18px;justify-content:center;line-height:1;min-height:28px;min-width:28px}.va-head-btn:hover{background:#ffffff0f;color:var(--text)}.va-head-btn-text{font-size:12px;font-weight:600;letter-spacing:.03em;padding:0 8px}.va-cta{background:#0000;border:1px solid var(--surf);border-radius:var(--card-radius);color:var(--surf);cursor:pointer;font-size:14px;font-weight:600;margin:12px 14px 0;padding:10px;transition:background .15s ease,color .15s ease}.va-cta:hover{background:var(--surf);color:var(--bg)}.va-session{align-items:center;display:flex;gap:12px;margin:12px 14px 0}.va-stop{align-items:center;background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--card-radius);color:var(--danger);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:10px 18px;transition:background .15s ease,color .15s ease}.va-stop:hover{background:var(--danger);color:var(--bg)}.va-stop-square{background:currentColor;border-radius:2px;height:10px;width:10px}.va-session-meta{font-feature-settings:"tnum";color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.va-live{align-items:center;background:#ffffff0a;border-radius:var(--card-radius);display:flex;gap:10px;margin:10px 14px 0;padding:8px 10px}.va-bars{align-items:flex-end;display:flex;flex:1 1;gap:2px;height:22px}.va-bar{background:var(--surf);border-radius:1px;flex:1 1;height:2px;transition:height 60ms linear}.va-live-speaking .va-bar{background:var(--surf-deep)}.va-mute{background:none;border:1px solid var(--border-strong);border-radius:var(--r-full);color:var(--muted);cursor:pointer;font-size:12px;padding:4px 10px;white-space:nowrap}.va-mute-on{border-color:var(--accent);color:var(--accent)}.va-audio{align-items:center;display:flex;gap:10px;margin:8px 14px 0;padding:0 10px}.va-vol{accent-color:var(--surf);flex:1 1}.va-vol:disabled{opacity:.4}.va-error{background:var(--danger-bg);border-radius:var(--card-radius);color:var(--danger);font-size:var(--fs-sm);margin:8px 14px 0;padding:8px 10px}.va-conv{display:flex;flex:1 1;flex-direction:column;gap:8px;margin-top:10px;min-height:120px;overflow-y:auto;padding:0 14px 14px}.va-empty{color:var(--muted);font-size:13px;line-height:1.5}.va-msg{border-radius:10px;font-size:13.5px;line-height:1.45;max-width:90%;padding:8px 11px;white-space:pre-wrap}.va-msg-user{align-self:flex-end;background:var(--surf-tint)}.va-msg-assistant{align-self:flex-start;background:#ffffff0f}.va-msg-streaming{opacity:.85}.va-media{align-self:stretch}.va-media-title{color:var(--muted);font-size:12px;font-weight:600;margin-bottom:6px}.va-media-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.va-media-card{align-items:stretch;background:#ffffff0d;border:1px solid #ffffff1f;border:1px solid var(--border,#ffffff1f);border-radius:10px;color:inherit;cursor:pointer;display:flex;flex-direction:column;font-size:12px;overflow:hidden;padding:0 0 7px;text-align:left;transition:transform .12s ease,border-color .12s ease}.va-media-card:hover{border-color:#ffffff47;transform:translateY(-1px)}.va-media-playing{border-color:#35d0a5;border-color:var(--accent,#35d0a5)}.va-media-thumb{display:block;position:relative}.va-media-thumb img{aspect-ratio:16/9;display:block;object-fit:cover;width:100%}.va-media-dur{font-feature-settings:"tnum";background:#000c;border-radius:4px;bottom:5px;color:#fff;font-size:10.5px;font-variant-numeric:tabular-nums;padding:1px 5px;position:absolute;right:5px}.va-media-play{align-items:center;background:#00000059;color:#fff;display:flex;font-size:20px;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .15s ease}.va-media-card:hover .va-media-play,.va-media-playing .va-media-play{opacity:1}.va-media-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-weight:600;line-height:1.3;overflow:hidden;padding:6px 8px 0}.va-media-meta{color:var(--muted);font-size:11px;overflow:hidden;padding:2px 8px 0;text-overflow:ellipsis;white-space:nowrap}.va-chat{border-top:1px solid var(--border);display:flex;gap:8px;padding:10px 14px}.va-chat-input{background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text);flex:1 1;font-size:13px;min-width:0;padding:8px 10px}.va-chat-input:focus{border-color:var(--surf);outline:none}.va-chat-send{background:none;border:1px solid var(--surf);border-radius:var(--r-md);color:var(--surf);cursor:pointer;font-size:13px;font-weight:600;padding:8px 12px}.va-chat-send:disabled{cursor:default;opacity:.4}.va-chat-send:not(:disabled):hover{background:var(--surf);color:var(--bg)}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#0000;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 0.5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;background-color:var(--xy-background-color-default);background-color:var(--xy-background-color,var(--xy-background-color-default));direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 0.5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-default);background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{touch-action:none;z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke-default);stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width-default);stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke-default);stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width-default);stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;pointer-events:none;position:absolute}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected-default);stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke-default);stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke-default);fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{overflow:visible;position:absolute;z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:default;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background-color:var(--xy-handle-background-color-default);background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:0;left:50%;top:auto;transform:translate(-50%,50%)}.react-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.react-flow__handle-left{left:0;top:50%;transform:translate(-50%,-50%)}.react-flow__handle-right{right:0;top:50%;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.bottom.center,.react-flow__panel.top.center{left:50%;transform:translateX(-15px) translateX(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color-default);background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:100%}.react-flow__minimap{background:var(--xy-minimap-background-color-default);background:var(
    --xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default))
  )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-default);fill:var(
      --xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default))
    );stroke:var(--xy-minimap-mask-stroke-color-default);stroke:var(
      --xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default))
    );stroke-width:var(--xy-minimap-mask-stroke-width-default);stroke-width:var(
      --xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default))
    )}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-default);fill:var(
      --xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default))
    );stroke:var(--xy-minimap-node-stroke-color-default);stroke:var(
      --xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default))
    );stroke-width:var(--xy-minimap-node-stroke-width-default);stroke-width:var(
      --xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default))
    )}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-dots-color-default);fill:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default))
    )}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-lines-color-default);stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default))
    )}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-cross-color-default);stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default))
    )}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow-default);box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));display:flex;flex-direction:column}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{align-items:center;background:var(--xy-controls-button-background-color-default);background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      );color:var(--xy-controls-button-color-default);color:var(
      --xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default))
    );cursor:pointer;display:flex;height:26px;justify-content:center;padding:4px;-webkit-user-select:none;user-select:none;width:26px}.react-flow__controls-button svg{fill:currentColor;max-height:12px;max-width:12px;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:var(--xy-node-background-color-default);background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));border:var(--xy-node-border,var(--xy-node-border-default));border-radius:var(--xy-node-border-radius-default);border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));color:var(--xy-node-color-default);color:var(--xy-node-color,var(--xy-node-color-default));font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover-default);box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected-default);box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color-default);background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color-default);background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-default);background:var(
        --xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default))
      );color:var(--xy-controls-button-color-hover-default);color:var(
        --xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default))
      )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color-default);background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;height:5px;translate:-50% -50%;width:5px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color-default);fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color-default);fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}
/*# sourceMappingURL=main.8df25643.css.map*/