.toasts{z-index:1000;flex-direction:column;gap:8px;max-width:min(360px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.toast{color:#fff;cursor:pointer;background:#1f2937;border-left:4px solid #3b82f6;border-radius:8px;flex-direction:column;gap:2px;padding:12px 14px;display:flex;box-shadow:0 4px 16px #0000004d}.toast--warning{border-left-color:#f59e0b}.toast--critical{background:#7f1d1d;border-left-color:#ef4444}:root{--color-bg:#f6f6f6;--color-surface:#fff;--color-hover:#f1f1f1;--color-text:#151515;--color-muted:#6f6f6f;--color-border:#e7e7e7;--color-accent:#00c0c9;--color-accent-dark:#0098a0;--color-error:#e5484d;--shadow-item:0 1px 3px #00000014;--radius-sm:12px;--radius-lg:28px;--gap:16px;--sidebar-width:280px;--sidebar-width-collapsed:72px;--transition:.2s ease}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#121212;--color-surface:#1c1c1e;--color-hover:#2a2a2d;--color-text:#f2f2f2;--color-muted:#9a9a9f;--color-border:#2e2e32;--shadow-item:0 1px 3px #00000080}*{box-sizing:border-box}html{background:var(--color-bg)}body{min-width:320px;color:var(--color-text);background:var(--color-bg);margin:0;font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.layout{gap:var(--gap);min-height:100vh;padding:var(--gap);display:flex}.content{flex:1;min-width:0;display:flex;overflow:hidden}.panel{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex:1;min-width:0;max-width:100%}.panel--center{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.panel--with-add{position:relative}.devices-panel{min-height:0;padding:clamp(1rem,3vw,2rem)}.devices-panel__top{justify-content:space-between;align-items:center;gap:24px;display:flex}.devices-panel__greeting{color:var(--color-muted);flex-shrink:0;margin:0;font-size:clamp(1rem,1.5vw,1.2rem);font-weight:500}.room-tabs{background:var(--color-hover);border-radius:18px;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.room-tabs__scroll{scrollbar-width:none;width:100%;min-width:0;overflow-x:auto}.room-tabs__scroll::-webkit-scrollbar{display:none}.room-tabs__item,.room-tabs__add{height:40px;color:var(--color-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:14px;flex:none;padding:0 16px;font-size:.9rem}.room-tabs__item:hover{color:var(--color-text)}.room-tabs__item--active{background:var(--color-accent);color:#fff}.room-tabs__add{background:var(--color-border);width:40px;color:var(--color-muted);box-shadow:var(--shadow-item);border-radius:50%;padding:0;font-size:1.45rem;line-height:1}.room-tabs__add:hover{background:var(--color-hover);color:var(--color-text)}.devices-panel__empty{text-align:center;margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.device-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-top:24px;padding-bottom:64px;display:grid}.device-card{border:1px solid var(--color-border);background:var(--color-surface);min-height:180px;box-shadow:var(--shadow-item);border-radius:20px;justify-content:space-between;align-items:stretch;padding:18px;display:flex;position:relative}.device-card__icon{background:var(--color-hover);width:36px;height:36px;color:var(--color-accent-dark);border-radius:50%;place-items:center;display:grid}.device-icon{width:21px;height:21px}.device-icon--barrier{background:currentColor;display:block;-webkit-mask:url("data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%2020010904//EN'%20'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'%3e%3csvg%20version='1.0'%20xmlns='http://www.w3.org/2000/svg'%20width='512pt'%20height='512pt'%20viewBox='0%200%20512%20512'%20preserveAspectRatio='xMidYMid%20meet'%3e%3cg%20transform='translate(0,512)%20scale(.1,-.1)'%20fill='%23000'%20stroke='none'%3e%3cpath%20d='M4255%204814c-126-95-234-179-238-186-8-13-126-849-121-856%207-10%20470%20352%20477%20371%207%2022%20118%20839%20114%20843-1%200-105-77-232-172z'/%3e%3cpath%20d='M4850%204922c0-4-13-111-30-237-16-125-29-230-27-231%204-4%20262%20197%20265%20206%203%209-194%20270-203%20270-3%200-5-4-5-8z'/%3e%3cpath%20d='M3370%204140c-118-89-225-172-236-183-19-20-28-69-78-436-31-227-55-415-53-418%203-2%20458%20325%20473%20341%205%204%20114%20840%20112%20848-2%205-100-63-218-152z'/%3e%3cpath%20d='M2461%203449c-124-93-226-171-228-173-2-2-28-185-58-407-30-222-56-414-58-426-3-13-1-23%202-23%203%200%20108%2079%20233%20176%20197%20152%20228%20179%20233%20207%203%2018%2028%20196%2055%20397%2027%20201%2052%20377%2055%20393%202%2015%201%2027-3%2026-4%200-108-77-231-170z'/%3e%3cpath%20d='M1468%202696%201131%202443l20-29c42-62%2098-184%20133-287%2032-95%2036-119%2036-207%200-55%203-100%206-100%204%200%2088%2061%20188%20135l182%20136%2058%20425c32%20234%2056%20427%2054%20429-2%202-155-110-340-249z'/%3e%3cpath%20d='M410%202347c-87-20-164-64-228-131-68-71-107-147-121-237-7-41-11-386-11-956v-893h450v915c0%20639-3%20930-11%20967-16%2074-63%20162-112%20212-104%20104-277%20155-417%20123z'/%3e%3c/g%3e%3c/svg%3e") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%2020010904//EN'%20'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'%3e%3csvg%20version='1.0'%20xmlns='http://www.w3.org/2000/svg'%20width='512pt'%20height='512pt'%20viewBox='0%200%20512%20512'%20preserveAspectRatio='xMidYMid%20meet'%3e%3cg%20transform='translate(0,512)%20scale(.1,-.1)'%20fill='%23000'%20stroke='none'%3e%3cpath%20d='M4255%204814c-126-95-234-179-238-186-8-13-126-849-121-856%207-10%20470%20352%20477%20371%207%2022%20118%20839%20114%20843-1%200-105-77-232-172z'/%3e%3cpath%20d='M4850%204922c0-4-13-111-30-237-16-125-29-230-27-231%204-4%20262%20197%20265%20206%203%209-194%20270-203%20270-3%200-5-4-5-8z'/%3e%3cpath%20d='M3370%204140c-118-89-225-172-236-183-19-20-28-69-78-436-31-227-55-415-53-418%203-2%20458%20325%20473%20341%205%204%20114%20840%20112%20848-2%205-100-63-218-152z'/%3e%3cpath%20d='M2461%203449c-124-93-226-171-228-173-2-2-28-185-58-407-30-222-56-414-58-426-3-13-1-23%202-23%203%200%20108%2079%20233%20176%20197%20152%20228%20179%20233%20207%203%2018%2028%20196%2055%20397%2027%20201%2052%20377%2055%20393%202%2015%201%2027-3%2026-4%200-108-77-231-170z'/%3e%3cpath%20d='M1468%202696%201131%202443l20-29c42-62%2098-184%20133-287%2032-95%2036-119%2036-207%200-55%203-100%206-100%204%200%2088%2061%20188%20135l182%20136%2058%20425c32%20234%2056%20427%2054%20429-2%202-155-110-340-249z'/%3e%3cpath%20d='M410%202347c-87-20-164-64-228-131-68-71-107-147-121-237-7-41-11-386-11-956v-893h450v915c0%20639-3%20930-11%20967-16%2074-63%20162-112%20212-104%20104-277%20155-417%20123z'/%3e%3c/g%3e%3c/svg%3e") 50%/contain no-repeat}.device-card__name{margin:0;padding-right:96px;font-size:1.05rem;font-weight:600;line-height:1.3}.device-card__content{flex-direction:column;align-items:flex-start;width:100%;min-width:0;padding:6px 0 12px;display:flex}.device-card__content>:last-child{margin-top:auto}.device-card__image{object-fit:contain;object-position:right top;width:82px;height:82px;position:absolute;top:18px;right:18px}.device-card__image--light-on{transform:translate(-2px,1px)scale(.9)}.device-card__switch{border:1px solid var(--color-border);background:var(--color-hover);cursor:pointer;border-radius:999px;align-items:center;width:42px;height:24px;margin-top:14px;padding:3px;transition:background .18s,border-color .18s;display:flex}.device-card__switch span{background:var(--color-surface);width:16px;height:16px;box-shadow:var(--shadow-item);border-radius:50%;transition:transform .18s}.device-card__switch--on{border-color:var(--color-accent);background:var(--color-accent)}.device-card__switch--on span{transform:translate(18px)}.device-card__value{font-size:1.6rem;font-weight:600;line-height:1}.device-card__content:has(.thermostat-sparkline) .device-card__value{margin-top:10px}.device-card__value small{color:var(--color-muted);font-size:.95rem;font-weight:400}.device-card__status{color:var(--color-accent-dark);font-weight:600}.device-card__status--alert{color:var(--color-error)}.device-card__details{width:32px;height:32px;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.1rem;position:absolute;bottom:12px;right:12px}.device-card__details:hover{background:var(--color-hover)}.thermostat-trend{width:100%;height:34px;color:var(--color-accent);display:block}.thermostat-sparkline{width:min(110px,100%);height:28px;color:var(--color-accent);align-items:end;gap:3px;margin-top:9px;display:flex}.thermostat-sparkline span{opacity:.8;background:currentColor;border-radius:99px;flex:1;width:3px;max-width:4px}.thermostat-history{border-top:1px solid var(--color-border);margin-top:20px;padding-top:16px}.thermostat-history h2{margin:0 0 10px;font-size:.95rem;font-weight:300}.thermostat-trend--details{height:66px;color:var(--color-accent)}.metric-chart{grid-template-columns:auto minmax(0,1fr);gap:8px;min-height:86px;display:grid}.metric-chart__y{color:var(--color-muted);text-align:right;white-space:nowrap;flex-direction:column;justify-content:space-between;padding:2px 0 18px;font-size:.72rem;line-height:1;display:flex}.metric-chart__body{min-width:0}.metric-chart__x{color:var(--color-muted);justify-content:space-between;margin-top:4px;font-size:.72rem;display:flex}.metric-chart__axis,.metric-chart__tick{stroke:var(--color-muted);stroke-width:.35px}.thermostat-trend__empty{color:var(--color-muted);margin:0;font-size:.85rem;line-height:1.4}.modal-backdrop{z-index:50;padding:var(--gap);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.device-modal{width:min(620px,100%);max-height:min(700px, calc(100vh - var(--gap) * 2));border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;padding:clamp(20px,4vw,28px);overflow:auto;box-shadow:0 12px 40px #0000002e}.device-modal--details{min-height:180px}.device-modal__subtitle{color:var(--color-muted);margin:-16px 0 5px}.device-modal__loading{color:var(--color-muted);margin:0}.device-details{flex-direction:column;margin:0;display:flex}.device-details__row{justify-content:space-between;align-items:baseline;gap:20px;padding:7px 0;display:flex}.device-details__row dt{color:var(--color-muted)}.device-details__row dd{text-align:right;margin:0;font-weight:600}.device-details__target-control{justify-content:flex-end;align-items:center;gap:7px;display:flex}.device-details__target-control input{border:1px solid var(--color-border);background:var(--color-surface);width:82px;height:32px;color:var(--color-text);font:inherit;text-align:center;border-radius:7px;outline:0;padding:0 7px;font-weight:600}.device-details__target-control input:focus{border-color:var(--color-accent);box-shadow:none}.device-details__target-control button{background:var(--color-accent);color:#fff;height:32px;font:inherit;cursor:pointer;border:0;border-radius:7px;padding:0 10px;font-size:.8rem;font-weight:600}.device-details__target-control button:disabled{opacity:.6;cursor:default}.device-details__room-select{border:1px solid var(--color-border);background:var(--color-surface);max-width:180px;color:var(--color-text);font:inherit;border-radius:8px;padding:6px 28px 6px 8px;font-weight:600}.device-modal__delete{border:1px solid var(--color-error);border-radius:var(--radius-sm);width:100%;height:44px;color:var(--color-error);font:inherit;cursor:pointer;background:0 0;margin-top:24px;font-weight:600}.device-modal__delete:hover{background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface))}.device-modal__confirm-text{color:var(--color-muted);margin:0;line-height:1.5}.device-modal__confirm-actions{gap:12px;margin-top:24px;display:flex}.device-modal__cancel,.device-modal__confirm-delete{border-radius:var(--radius-sm);height:44px;font:inherit;cursor:pointer;flex:1;font-weight:600}.device-modal__cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.device-modal__confirm-delete{border:1px solid var(--color-error);background:var(--color-error);color:#fff}.device-modal__confirm-delete:disabled{opacity:.6;cursor:default}.device-modal--compact{width:min(440px,100%)}.device-modal__header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.device-modal__header h1{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1.3rem;overflow:hidden}.device-modal__name-editor{flex:1;min-width:0;position:relative}.device-modal__name-input{border:1px solid var(--color-border);background:var(--color-hover);width:100%;height:40px;color:var(--color-text);font:inherit;border-radius:10px;outline:0;padding:0 12px;font-size:1rem;font-weight:600}.device-modal__name-input:focus{border-color:var(--color-border);box-shadow:none}.device-modal__close{background:var(--color-hover);width:36px;height:36px;color:var(--color-text);font:inherit;cursor:pointer;border:0;border-radius:50%;flex-shrink:0;padding:0;font-size:1.5rem;line-height:1}.device-modal__back,.device-modal__more{background:var(--color-hover);width:36px;height:36px;color:var(--color-text);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;padding:0}.device-modal__back{font:inherit;background:0 0;font-size:1.35rem;font-weight:600;line-height:1}.device-modal__menu{flex-shrink:0;position:relative}.device-modal__more{background:0 0;place-content:center;gap:3px;display:grid}.device-modal__more span{background:currentColor;border-radius:50%;width:4px;height:4px}.device-modal__menu-list{z-index:2;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-width:132px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000024}.device-modal__menu-list button{width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:11px 14px}.device-modal__menu-list button:hover{background:var(--color-hover)}.device-modal__save{background:var(--color-accent);color:#fff;min-width:112px;height:38px;font:inherit;cursor:pointer;border:0;border-radius:9px;margin:20px auto 0;padding:0 16px;font-weight:600;display:block}.device-modal__save:hover:not(:disabled){background:var(--color-accent-dark)}.device-modal__save:disabled{opacity:.55;cursor:default}.device-modal__menu-list .device-modal__menu-delete{color:var(--color-error)}.room-modal__menu{margin-left:auto}.room-modal__devices{margin-top:4px}.room-modal__device-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.room-modal__device-list li{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:40px;padding:0 2px;display:grid}.room-modal__device-list span{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.room-modal__device-list small{color:var(--color-muted)}.room-modal__device-delete{width:30px;height:30px;color:var(--color-error);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;padding:0;display:grid}.room-modal__device-delete:hover{background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface))}.room-modal__device-delete svg{width:17px;height:17px}.device-modal__refresh{background:var(--color-hover);width:36px;height:36px;color:var(--color-text);font:inherit;cursor:pointer;border:0;border-radius:50%;padding:0;font-size:1.3rem;line-height:1}.device-modal__refresh svg{width:19px;height:19px}.device-modal__refresh:hover,.device-modal__close:hover{background:var(--color-border)}.device-modal__refresh:disabled{opacity:.6;cursor:default}.device-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.device-picker__item{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:112px;color:var(--color-text);font:inherit;text-align:center;cursor:pointer;transition:border-color var(--transition), background var(--transition), color var(--transition);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:12px;font-size:.88rem;display:flex}.device-picker__item:hover,.device-picker__item--selected{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));color:var(--color-accent-dark)}.device-picker__item .device-icon{width:28px;height:28px}.device-modal__field{flex-direction:column;gap:6px;margin-top:20px;font-size:.9rem;font-weight:500;display:flex}.device-modal__field--first{margin-top:0}.device-modal__error{color:var(--color-error);margin:16px 0 0;font-size:.9rem}.device-modal__field input,.device-modal__field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);height:46px;color:var(--color-text);font:inherit;outline:0;padding:0 12px}.device-modal__field input:focus,.device-modal__field select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #00c0c933}.device-modal__submit{border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;width:100%;height:46px;font:inherit;cursor:pointer;box-shadow:0 3px 0 var(--color-accent-dark);border:0;margin-top:24px;font-weight:600}.device-modal__submit:disabled{opacity:.55;cursor:default}.device-toast{z-index:60;border-radius:var(--radius-sm);background:var(--color-text);color:var(--color-surface);padding:14px 18px;position:fixed;bottom:clamp(1rem,3vw,2rem);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.rooms-panel{min-height:0;padding:clamp(1rem,3vw,2rem);position:relative}.rooms-panel__empty{text-align:center;margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;display:grid}.room-card{border:1px solid var(--color-border);background:var(--color-surface);min-height:120px;box-shadow:var(--shadow-item);border-radius:20px;align-items:flex-end;padding:18px;font-size:1.05rem;font-weight:600;display:flex;position:relative}.room-card__name{max-width:calc(100% - 82px);position:absolute;top:18px;left:18px}.room-card__count{color:var(--color-muted);font-size:.9rem;font-weight:400;position:absolute;top:48px;left:18px}.room-card__image{object-fit:contain;object-position:right top;width:56px;height:56px;position:absolute;top:14px;right:14px}.room-card__details{width:32px;height:32px;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.1rem;font-weight:400;position:absolute;bottom:12px;right:12px}.room-card__details:hover{background:var(--color-hover)}.panel__add{background:var(--color-accent);color:#fff;width:48px;height:48px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;font-size:1.75rem;font-weight:400;line-height:1;display:grid;position:absolute;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.panel__add:hover{background:var(--color-accent-dark)}.panel__add:active{transform:translateY(2px)}.panel__add:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.panel__title{margin:0 0 .5rem;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:600}.panel__text{color:var(--color-muted);margin:0 0 1rem}.backdrop{display:none}@media (width<=480px){:root{--gap:10px}}@media (width<=700px){.devices-panel{padding:12px;overflow:hidden}.rooms-panel{padding:12px 8px;overflow:hidden}.rooms-grid{grid-template-columns:minmax(0,1fr);gap:12px}.room-card{width:100%;min-width:0}.devices-panel__greeting{display:none}.room-tabs{max-width:none}.room-tabs__item{height:38px;padding:0 14px}.room-tabs__add{width:38px;height:38px}.device-grid{grid-template-columns:1fr;gap:12px;margin-top:16px}.device-card{min-height:156px}.device-card__image{width:72px;height:72px;top:14px;right:14px}.device-card__name{padding-right:82px}.panel__add{bottom:16px;right:16px}}.sidebar{top:var(--gap);width:var(--sidebar-width);height:calc(100vh - var(--gap) * 2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);transition:width var(--transition);flex-direction:column;flex-shrink:0;padding:24px 16px 16px;display:flex;position:sticky;overflow:hidden auto}.sidebar--collapsed{width:var(--sidebar-width-collapsed)}.sidebar__top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:28px;padding:0 4px;display:flex}.logo{height:40px;display:block;overflow:hidden}.logo img{max-width:none;display:block}.logo .logo__img--on-dark,:root[data-theme=dark] .logo .logo__img--on-light{display:none}:root[data-theme=dark] .logo .logo__img--on-dark{display:block}.sidebar__toggle{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-muted);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:0;flex-shrink:0;place-items:center;padding:0;display:grid}.sidebar__toggle:hover{color:var(--color-text);background:var(--color-hover)}.menu{flex-direction:column;gap:6px;display:flex}.menu__item{border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;width:100%;height:46px;transition:background var(--transition), border-color var(--transition);background:0 0;border:1px solid #0000;align-items:center;gap:14px;padding:0 16px;font-size:1rem;display:flex}.menu__item svg{flex-shrink:0}.menu__item:hover{background:var(--color-hover)}.menu__item--active,.menu__item--active:hover{border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-item)}.menu__item:focus-visible,.sidebar__toggle:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.sidebar__line{border:0;border-top:1px solid var(--color-border);margin:0 4px 14px}.sidebar__bottom{flex-direction:column;gap:6px;margin-top:auto;padding-top:20px;display:flex}.profile{align-items:center;gap:8px;min-height:46px;padding:0 4px 0 16px;display:flex}.profile__info{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.profile__info svg{flex-shrink:0}.profile__name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.profile__logout{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-muted);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:0;flex-shrink:0;place-items:center;padding:0;display:grid}.profile__logout:hover{color:var(--color-text);background:var(--color-hover)}.sidebar--collapsed .sidebar__top{flex-direction:column;padding:0}.sidebar--collapsed .logo{width:40px}.sidebar--collapsed .menu__item{justify-content:center;padding:0}.sidebar--collapsed .menu__label{display:none}.sidebar--collapsed .profile{flex-direction:column;padding:0}.sidebar--collapsed .profile__info{flex:none;justify-content:center}.sidebar--collapsed .profile__name{display:none}@media (width<=900px){.sidebar{z-index:30;width:min(240px, calc(100vw - var(--gap) * 2));border-radius:0 20px 20px 0;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.sidebar__top{margin-bottom:16px}.menu{gap:3px}.menu__item{height:42px}.sidebar__bottom{gap:3px;margin-top:10px;padding-top:10px}.sidebar__line{margin-bottom:8px}.profile{min-height:42px}.sidebar--collapsed{width:40px;padding:10px 5px}.sidebar--collapsed .sidebar__top{margin-bottom:18px}.sidebar--collapsed .logo{width:28px;height:28px}.sidebar--collapsed .logo img{width:78px;height:28px}.sidebar--collapsed .sidebar__toggle{width:28px;height:28px}.sidebar--collapsed .sidebar__toggle svg,.sidebar--collapsed .menu__item svg,.sidebar--collapsed .profile__info svg,.sidebar--collapsed .profile__logout svg{width:18px;height:18px}.sidebar--collapsed .menu__item,.sidebar--collapsed .profile{height:34px;min-height:34px}.sidebar--collapsed .profile__logout{width:28px;height:28px}.content{width:calc(100vw - 40px - var(--gap) * 3);max-width:calc(100vw - 40px - var(--gap) * 3);flex:none;margin-left:40px}.backdrop{z-index:20;background:#00000040;display:block;position:fixed;inset:0}}.dialog{border:1px solid var(--color-border);background:var(--color-surface);width:min(380px,100vw - 32px);color:var(--color-text);border-radius:20px;padding:24px;box-shadow:0 12px 40px #0000002e}.dialog::backdrop{background:#00000059}.dialog__title{text-align:center;margin:0 0 20px;font-size:1.1rem;font-weight:600}.dialog__actions{gap:12px;display:flex}.dialog__btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);height:44px;color:var(--color-text);font:inherit;cursor:pointer;transition:background var(--transition);flex:1;font-weight:600}.dialog__btn:hover{background:var(--color-hover)}.dialog__btn--primary{background:var(--color-accent);color:#fff;border-color:#0000}.dialog__btn--primary:hover{background:var(--color-accent-dark)}.dialog__btn:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.settings{padding:clamp(1.25rem,3vw,2rem)}.settings__row{justify-content:space-between;align-items:center;gap:1rem;max-width:560px;display:flex}.settings__form{border-top:1px solid var(--color-border);flex-direction:column;gap:20px;width:min(560px,100%);margin-top:32px;padding-top:28px;display:flex}.settings__notifications{margin-top:18px}.settings__notifications-button{border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;height:44px;font:inherit;cursor:pointer;transition:transform var(--transition), background var(--transition);border:0;flex-shrink:0;padding:0 18px;font-size:.9rem;font-weight:600}.settings__notifications-button:hover{background:var(--color-accent-dark)}.settings__notifications-button:active{transform:translateY(2px)}.settings__emergency{margin-top:18px}.settings__emergency-button{border:1px solid var(--color-error);min-height:38px;color:var(--color-error);font:inherit;cursor:pointer;background:0 0;border-radius:9px;flex-shrink:0;padding:0 14px;font-size:.88rem;font-weight:600}.settings__emergency-button--active{background:var(--color-error);color:#fff}.settings__emergency-button:disabled{opacity:.6;cursor:default}.settings__fields{grid-template-columns:1fr;gap:16px;display:grid}.settings__field{flex-direction:column;gap:6px;font-size:.9rem;font-weight:500;display:flex}.settings__input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);height:46px;color:var(--color-text);font:inherit;box-shadow:var(--shadow-item);transition:border-color var(--transition), box-shadow var(--transition);outline:0;padding:0 12px;font-weight:400}.settings__input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #00c0c933}.settings__actions{align-items:center;gap:12px;display:flex}.settings__save{border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;height:44px;font:inherit;cursor:pointer;box-shadow:0 3px 0 var(--color-accent-dark);border:1px solid #0000;padding:0 20px;font-weight:600}.settings__save:active{box-shadow:0 1px 0 var(--color-accent-dark);transform:translateY(2px)}.settings__save:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.settings__save:disabled{opacity:.6;cursor:default}.settings__saved{color:var(--color-muted);font-size:.9rem}.settings__error{color:var(--color-error);margin:-8px 0 0;font-size:.9rem}.settings__title{margin:0 0 .25rem;font-weight:600}.settings__hint{color:var(--color-muted);margin:0;font-size:.9rem}.switch{border:1px solid var(--color-border);background:var(--color-hover);cursor:pointer;width:48px;height:28px;transition:background var(--transition), border-color var(--transition);border-radius:999px;flex-shrink:0;padding:0;position:relative}.switch--on{border-color:var(--color-text);background:var(--color-text)}.switch__thumb{background:var(--color-surface);width:20px;height:20px;box-shadow:var(--shadow-item);transition:transform var(--transition);border-radius:50%;position:absolute;top:3px;left:3px}.switch--on .switch__thumb{transform:translate(20px)}.switch:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}@media (width<=480px){.settings__row{align-items:flex-start}}.auth{min-height:100vh;padding:var(--gap);place-items:center;display:grid;position:relative}.auth__bg{opacity:.85;pointer-events:none;background:url(/assets/line-BbXihP7o.webp) 50%/cover no-repeat;position:fixed;inset:0}:root[data-theme=dark] .auth__bg{opacity:.6;filter:brightness(2.2)}.auth__card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;width:min(440px,100%);padding:clamp(20px,5vw,32px);position:relative;box-shadow:0 8px 32px #0000000f}.auth__logo{width:40px;height:40px;margin:0 auto 28px;overflow:hidden}.auth__logo img{max-width:none;display:block}.auth__title{text-align:center;margin:0 0 10px;font-size:clamp(1.4rem,5vw,1.75rem);font-weight:600}.auth__text{text-align:center;color:var(--color-muted);margin:0 0 28px;line-height:1.5}.auth__form{flex-direction:column;gap:16px;display:flex}.field__label{margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.field__box{border:1px solid var(--color-border);background:var(--color-surface);height:46px;transition:border-color var(--transition), box-shadow var(--transition);border-radius:12px;align-items:center;gap:10px;padding:0 12px;display:flex;box-shadow:0 1px 2px #0000000d}.field__box:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px #00c0c933}.field__box--error,.field__box--error:focus-within{border-color:var(--color-error)}.field__box--error:focus-within{box-shadow:0 0 0 3px #e5484d33}.field__icon{color:var(--color-muted);display:flex}.field__input{min-width:0;height:100%;font:inherit;color:var(--color-text);background:0 0;border:0;outline:0;flex:1}.field__input::placeholder{color:var(--color-muted)}.field__eye{color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:4px;display:flex}.field__eye:hover{color:var(--color-text)}.field__note{color:var(--color-error);margin:6px 0 0;font-size:.82rem}.sms-code__inputs{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.sms-code__input{aspect-ratio:1;border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:54px;color:var(--color-text);font:inherit;text-align:center;transition:border-color var(--transition), box-shadow var(--transition);border-radius:12px;outline:0;font-size:1.4rem;font-weight:600}.sms-code__input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #00c0c933}.sms-code__inputs--error .sms-code__input{border-color:var(--color-error)}.sms-code__inputs--error .sms-code__input:focus{box-shadow:0 0 0 3px #e5484d33}.auth__error{color:var(--color-error);margin:0;font-size:.9rem}.auth__check{cursor:pointer;align-items:center;gap:10px;font-size:.92rem;display:flex}.auth__check input{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;margin:0}.auth__actions{flex-direction:column;gap:12px;margin-top:8px;display:flex}.auth__btn{height:48px;font:inherit;cursor:pointer;transition:transform 80ms ease, box-shadow 80ms ease, opacity var(--transition);border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;font-weight:600;display:flex}.auth__btn--primary{background:var(--color-accent);color:#fff;box-shadow:0 3px 0 var(--color-accent-dark)}.auth__btn--secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:0 3px 0 var(--color-border)}.auth__btn:active{box-shadow:0 1px 0 var(--color-border);transform:translateY(2px)}.auth__btn--primary:active{box-shadow:0 1px 0 var(--color-accent-dark)}.auth__btn:disabled{opacity:.6;cursor:default}.auth__btn:focus-visible,.auth__check input:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}@media (width<=480px){.auth__card{border-radius:20px}}.scenarios{min-width:0;padding:28px;overflow-y:auto}.scenarios__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.scenarios__count{border-radius:var(--radius-sm);background:var(--color-hover);flex-shrink:0;padding:8px 12px;font-size:14px}.scenarios__controls{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:12px;display:flex}.scenarios__button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;cursor:pointer;transition:background var(--transition), border-color var(--transition), opacity var(--transition);padding:10px 18px;font-weight:600}.scenarios__button:hover:not(:disabled){background:var(--color-hover)}.scenarios__button:disabled{cursor:wait;opacity:.6}.scenarios__button--accent{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.scenarios__button--accent:hover:not(:disabled){border-color:var(--color-accent-dark);background:var(--color-accent-dark)}.scenarios__button--danger{border-color:var(--color-error);color:var(--color-error)}.scenarios__link-button{width:100%;color:var(--color-accent-dark);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;margin-top:12px;padding:8px;font-weight:600;display:flex}.scenarios__link-button:hover{text-decoration:underline}.scenarios__link-button--small{width:auto;margin:0;padding:0;font-size:13px}.scenarios__toolbar{justify-content:flex-end;display:flex}.notice{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-hover);text-align:center;justify-content:center;align-items:center;gap:10px;max-width:100%;padding:10px 18px;font-size:15px;font-weight:600;display:inline-flex}.notice--success{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface))}.notice--error{border-color:var(--color-error);background:color-mix(in srgb, var(--color-error) 12%, var(--color-surface));color:var(--color-error)}.notice--info{color:var(--color-muted)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite scenarios-spin}@keyframes scenarios-spin{to{transform:rotate(360deg)}}.scenarios__notice-slot{grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid}.scenarios__notice-slot.is-open{grid-template-rows:1fr}.scenarios__notice-clip{justify-content:center;min-height:0;display:flex;overflow:hidden}.scenarios__notice-clip .notice{margin-bottom:20px}.scenarios__status{justify-content:center;padding:16px 0;display:flex}.scenarios__empty{text-align:center;color:var(--color-muted);padding:96px 16px 32px}.scenario-section__title{margin:20px 0 10px;font-size:18px}.scenario-block{background:var(--color-hover);border-radius:20px;overflow:hidden}.scenario-block--padded{padding:12px}.scenario-row{align-items:center;gap:14px;padding:14px 16px;display:flex}.scenario-row+.scenario-row{border-top:1px solid var(--color-border)}.scenario-avatar{background:color-mix(in srgb, var(--color-accent) 20%, var(--color-surface));width:44px;height:44px;color:var(--color-accent-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.scenario-row__text{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.scenario-row__label{color:var(--color-muted);font-size:13px}.scenario-row__value{font-size:16px;line-height:1.4}.scenario-row__remove{width:32px;height:32px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;font-size:22px;line-height:1}.scenario-row__remove:hover{background:var(--color-surface);color:var(--color-error)}.scenarios__list{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px;display:grid}.scenario-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;min-width:0;padding:22px}.scenario-card__title{overflow-wrap:anywhere;margin:0;font-size:20px}.scenario-card__actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.scenario-form{border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;width:min(100%,900px);margin:0 auto 28px;padding:24px 28px 28px}.scenario-form__title{margin:0;font-size:22px}.scenario-form section>.scenario-section__title:first-child{margin-top:22px}.scenario-fields{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;display:grid}.scenario-field{align-content:start;gap:6px;min-width:0;display:grid}.scenario-field__caption{color:var(--color-muted);font-size:13px}.scenario-form input,.scenario-form select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);width:100%;min-width:0;color:inherit;font:inherit;padding:11px 14px;font-size:15px}.scenario-form input:focus,.scenario-form select:focus{outline:2px solid color-mix(in srgb, var(--color-accent) 45%, transparent);outline-offset:0;border-color:var(--color-accent)}.scenario-form select{appearance:none;text-overflow:ellipsis;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%236f6f6f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 6l4.5 4.5L12.5 6'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;padding-right:44px}.scenario-form select:disabled{cursor:not-allowed;opacity:.6}.scenario-form__error{width:fit-content;margin:20px auto 0;display:flex}.scenario-form__submit{border-radius:999px;width:min(100%,360px);margin:24px auto 0;padding:14px 18px;font-size:16px;display:block}@media (width<=600px){.scenarios{padding:18px}.scenarios__header{flex-direction:column;gap:14px}.scenarios__controls{flex-direction:column;align-items:flex-start;gap:14px}.scenarios__toolbar{justify-content:flex-start}.scenario-form{padding:18px}.scenario-row{align-items:flex-start}.scenario-fields{grid-template-columns:minmax(0,1fr)}}.scenario-device-image{object-fit:contain;width:100%;height:100%;display:block}.sim-tabs{border-radius:var(--radius-sm);background:var(--color-hover);gap:4px;width:fit-content;max-width:100%;margin:0 auto 20px;padding:4px;display:flex;overflow-x:auto}.sim-tab{color:var(--color-muted);white-space:nowrap;cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:0;border-radius:9px;padding:8px 16px;font-weight:600}.sim-tab.is-active{background:var(--color-accent);color:#fff}.sim-result{border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;width:min(100%,900px);margin:0 auto 28px;padding:24px 28px}.sim-result>.notice{width:fit-content;margin:0 auto;font-size:17px;display:flex}.sim-result>.scenario-section__title:first-of-type{margin-top:22px}.sim-row__note{color:var(--color-muted);margin-top:2px;font-size:13px}.sim-block--muted{opacity:.6}.sim-hint{text-align:center;color:var(--color-muted);margin:16px 0 0;font-size:13px}@media (width<=600px){.sim-result{padding:18px}}
