.ts-portal{--green: #173f38; --ink: #1c302c; --muted: #75807c; --line: #e3e8e4; --bg: #f6f8f5; --lime: #d9ed9b;}
.ts-portal *{box-sizing: border-box;}
.ts-portal{margin: 0px; color: var(--ink); background: var(--bg); font: 16px "DM Sans", sans-serif;}
.ts-portal button,.ts-portal a{-webkit-tap-highlight-color: transparent;}
.ts-portal button,.ts-portal input,.ts-portal select{font: inherit;}
.ts-portal button,.ts-portal a{touch-action: manipulation;}
.ts-portal button{cursor: pointer;}
.ts-portal a{color: inherit; text-decoration: none;}
.ts-portal button:focus-visible,.ts-portal a:focus-visible,.ts-portal input:focus-visible{outline: rgb(133, 169, 51) solid 3px; outline-offset: 4px;}
.ts-portal .sidebar{position: fixed; width: 254px; height: 100dvh; background: white; border-right: 1px solid var(--line); padding: 37px 26px; display: flex; flex-direction: column;}
.ts-portal .brand{display: flex; gap: 9px; align-items: center; font: 800 30px Manrope, sans-serif; letter-spacing: -1.8px;}
.ts-portal .brand-icon{display: grid; place-items: center; background: var(--green); color: var(--lime); width: 35px; height: 38px; border-radius: 12px; font-size: 34px; font-weight: 500; line-height: 1;}
.ts-portal .brand-dot{color: rgb(128, 160, 73); margin-left: -7px;}
.ts-portal .property-label{font-size: 11px; letter-spacing: 1.8px; margin-top: 56px; color: var(--muted);}
.ts-portal .property-name{font-weight: 700; font-size: 18px; margin-top: 12px;}
.ts-portal .property-name span{display: block; font-size: 13px; font-weight: 400; color: var(--muted); margin-top: 5px;}
.ts-portal nav{display: flex;}
.ts-portal .sidebar nav{flex-direction: column; gap: 7px; margin-top: 33px;}
.ts-portal .nav-item{display: flex; align-items: center; gap: 14px; padding: 14px 17px; border-radius: 11px; color: rgb(105, 119, 112); font-size: 15px; font-weight: 550;}
.ts-portal .nav-item.active{background: var(--green); color: white;}
.ts-portal .icon{width: 23px; height: 23px; fill: none; stroke: currentcolor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0;}
.ts-portal .side-bottom{margin-top: auto; display: flex; gap: 10px; font-size: 12px; align-items: center;}
.ts-portal .side-bottom small{display: block; color: var(--muted); margin-top: 4px;}
.ts-portal .room-icon{font-size: 26px;}
.ts-portal .shell{margin-left: 254px;}
.ts-portal header{height: 93px; border-bottom: 1px solid var(--line); padding: 0px 45px; display: flex; align-items: center; justify-content: space-between; background: rgb(255, 255, 255);}
.ts-portal .breadcrumb{font-size: 14px; color: rgb(100, 113, 107);}
.ts-portal .breadcrumb span{margin: 0px 13px; color: rgb(188, 196, 191);}
.ts-portal .room-pill{background: rgb(243, 245, 239); border: 1px solid var(--line); border-radius: 30px; padding: 11px 17px; display: flex; gap: 9px; align-items: center; font-size: 14px; color: var(--green);}
.ts-portal main{max-width: 1200px; margin: auto; padding: 36px 44px 20px;}
.ts-portal .eyebrow{font-size: 12px; letter-spacing: 1.8px; font-weight: 650; color: rgb(115, 132, 113); text-transform: uppercase;}
.ts-portal .page-top{display: flex; align-items: center; justify-content: space-between; margin-bottom: 26px;}
.ts-portal h1{font: 750 32px / 1.2 Manrope, sans-serif; letter-spacing: -1.4px; margin: 8px 0px 9px;}
.ts-portal p{line-height: 1.6; margin: 0px; color: rgb(106, 121, 113);}
.ts-portal .date-badge{color: rgb(111, 123, 115); font-size: 14px; border: 1px solid var(--line); padding: 10px 15px; border-radius: 30px; background: white;}
.ts-portal .hero{height: 275px; position: relative; border-radius: 19px; overflow: hidden; background: rgb(37, 77, 64); color: white;}
.ts-portal .hero img{width: 100%; height: 100%; object-fit: cover; object-position: center 54%;}
.ts-portal .hero::after{content: ""; position: absolute; inset: 0px; background: linear-gradient(90deg, rgba(8, 29, 22, 0.74), rgba(8, 29, 22, 0.06));}
.ts-portal .hero-copy{position: absolute; z-index: 1; left: 31px; top: 31px; max-width: 330px;}
.ts-portal .hero-tag{display: inline-block; background: rgba(255, 255, 255, 0.133); backdrop-filter: blur(8px); padding: 7px 12px; border: 1px solid rgba(255, 255, 255, 0.27); border-radius: 20px; font-size: 12px;}
.ts-portal .hero h2{font: 600 34px / 1.17 Manrope; letter-spacing: -1px; margin: 21px 0px 10px;}
.ts-portal .hero p{color: rgb(230, 238, 232); font-size: 14px; max-width: 260px;}
.ts-portal .hero-location{position: absolute; bottom: 24px; right: 25px; z-index: 1; font-size: 12px; background: rgba(16, 43, 35, 0.5); padding: 8px 12px; border-radius: 20px;}
.ts-portal .section-heading{display: flex; align-items: center; justify-content: space-between; margin: 29px 0px 15px;}
.ts-portal h2{font: 700 19px Manrope; margin: 0px; letter-spacing: -0.4px;}
.ts-portal .section-heading span{font-size: 13px; color: var(--muted);}
.ts-portal .quick-grid{display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px;}
.ts-portal .quick-card{padding: 20px; text-align: left; min-height: 143px; border-radius: 15px; border: 1px solid var(--line); background: rgb(255, 255, 255); color: var(--ink); transition: transform 0.18s, box-shadow 0.18s;}
.ts-portal .quick-card:hover{transform: translateY(-3px); box-shadow: rgba(24, 62, 56, 0.063) 0px 8px 20px;}
.ts-portal .quick-card:first-child{background: var(--green); color: rgb(255, 255, 255); border-color: var(--green);}
.ts-portal .quick-card .icon-wrap{display: flex; width: 39px; height: 39px; border-radius: 11px; background: rgb(241, 245, 233); align-items: center; justify-content: center; margin-bottom: 15px;}
.ts-portal .quick-card:first-child .icon-wrap{background: rgba(255, 255, 255, 0.094); color: var(--lime);}
.ts-portal .quick-card strong{display: block; font-size: 15px;}
.ts-portal .quick-card small{display: block; font-size: 12px; color: rgb(131, 144, 136); margin-top: 4px;}
.ts-portal .quick-card:first-child small{color: rgb(196, 212, 200);}
.ts-portal .lower-grid{display: grid; grid-template-columns: 1.2fr 1fr; gap: 20px; margin-top: 24px;}
.ts-portal .card{background: white; border: 1px solid var(--line); border-radius: 15px; padding: 23px;}
.ts-portal .card h2{font-size: 17px; margin-bottom: 19px;}
.ts-portal .detail-row{display: flex; gap: 13px; padding: 13px 0px; align-items: center; border-bottom: 1px solid rgb(238, 241, 235);}
.ts-portal .detail-row:last-child{border: 0px; padding-bottom: 0px;}
.ts-portal .detail-row .icon{color: rgb(107, 130, 113); width: 20px;}
.ts-portal .detail-row div{flex: 1 1 0%;}
.ts-portal .detail-row strong{display: block; font-size: 14px; font-weight: 550;}
.ts-portal .detail-row small{display: block; font-size: 13px; color: var(--muted); margin-top: 4px;}
.ts-portal .detail-row > span{font-size: 13px; background: rgb(241, 245, 236); border-radius: 6px; padding: 5px 8px;}
.ts-portal .host-card{background: rgb(234, 240, 223); position: relative; display: flex; flex-direction: column; align-items: flex-start;}
.ts-portal .host-card p{font-size: 14px; max-width: 300px; margin-bottom: 20px;}
.ts-portal .host-card .host-icon{display: grid; place-items: center; width: 43px; height: 43px; border-radius: 50%; background: rgb(216, 230, 197); color: var(--green); margin-bottom: 13px;}
.ts-portal .primary{border: 0px; border-radius: 9px; padding: 12px 19px; background: var(--green); color: rgb(255, 255, 255); font-size: 14px; font-weight: 600; display: inline-flex; gap: 9px; align-items: center; justify-content: center;}
.ts-portal .host-card .primary{margin-top: auto;}
.ts-portal .primary .icon{width: 18px; height: 18px;}
.ts-portal footer{display: flex; align-items: center; gap: 16px; max-width: 1200px; margin: auto; padding: 28px 44px; font-size: 10px; letter-spacing: 1.2px; color: rgb(126, 137, 126);}
.ts-portal footer span{letter-spacing: 0px; font-size: 12px;}
.ts-portal footer small{margin-left: auto; font-size: 11px; letter-spacing: 0px;}
.ts-portal .mobile-brand,.ts-portal .bottom-nav{display: none;}
.ts-portal .view{animation: 0.25s ease 0s 1 normal none running appear;}
@keyframes appear { 
  0% { opacity: 0; transform: translateY(5px); }
  100% { opacity: 1; transform: none; }
}
.ts-portal .tabs{display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 23px;}
.ts-portal .chip{border: 1px solid var(--line); border-radius: 24px; padding: 10px 19px; background: rgb(255, 255, 255); color: rgb(100, 115, 104); font-size: 14px;}
.ts-portal .chip.active{background: var(--green); color: white; border-color: var(--green);}
.ts-portal .list-grid{display: grid; grid-template-columns: 1fr 1fr; gap: 16px;}
.ts-portal .menu-item{display: flex; flex-direction: column; gap: 8px;}
.ts-portal .menu-item .price{color: var(--green); font-weight: 700;}
.ts-portal .menu-item p{font-size: 14px;}
.ts-portal .menu-item h2{margin: 0px; font-size: 18px;}
.ts-portal .menu-item .menu-top{display: flex; justify-content: space-between; gap: 15px;}
.ts-portal .pill{display: inline-block; width: fit-content; font-size: 12px; padding: 5px 9px; background: rgb(239, 243, 233); border-radius: 5px; color: rgb(109, 124, 96);}
.ts-portal .notice{margin-bottom: 22px; background: rgb(234, 240, 223); padding: 15px 18px; border-radius: 10px; font-size: 14px; line-height: 1.6; color: rgb(73, 97, 69);}
.ts-portal .accordion{padding: 0px; overflow: hidden;}
.ts-portal .accordion details{border-bottom: 1px solid var(--line);}
.ts-portal .accordion details:last-child{border: 0px;}
.ts-portal .accordion summary{cursor: pointer; padding: 20px; font-size: 16px; font-weight: 600; list-style: none; display: flex; justify-content: space-between;}
.ts-portal .accordion summary::after{content: "+"; font-weight: 400;}
.ts-portal .accordion details[open] summary::after{content: "−";}
.ts-portal .accordion details p{padding: 0px 20px 22px; font-size: 15px;}
.ts-portal .contact-layout{max-width: 750px;}
.ts-portal .contact-layout .card{margin-bottom: 15px;}
.ts-portal dialog{border: 0px; border-radius: 22px; padding: 30px; width: min(440px, 100% - 30px); color: var(--ink); box-shadow: rgba(0, 0, 0, 0.2) 0px 25px 100px;}
.ts-portal dialog::backdrop{background: rgba(16, 45, 40, 0.4); backdrop-filter: blur(4px);}
.ts-portal .modal-head{display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px;}
.ts-portal .close{border: 0px; background: rgb(241, 244, 238); border-radius: 50%; width: 34px; height: 34px; font-size: 23px; color: rgb(83, 100, 88);}
.ts-portal .wifi-symbol{width: 65px; height: 65px; display: grid; place-items: center; background: rgb(233, 241, 222); border-radius: 18px; color: var(--green); margin: 5px 0px 20px;}
.ts-portal .wifi-symbol .icon{width: 34px; height: 34px;}
.ts-portal .field{background: rgb(244, 246, 241); padding: 15px; border-radius: 11px; margin: 12px 0px;}
.ts-portal .field label{display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px;}
.ts-portal .field strong{font-size: 18px; letter-spacing: 0.4px;}
.ts-portal dialog p{font-size: 14px; margin: 15px 0px;}
.ts-portal .wide{width: 100%;}
.ts-portal .secondary{background: rgb(237, 241, 231); color: var(--green); margin-top: 9px;}
.ts-portal #toast{position: fixed; bottom: 35px; left: 50%; transform: translateX(-50%); padding: 13px 22px; background: rgb(23, 63, 56); color: white; border-radius: 12px; font-size: 14px; z-index: 10; opacity: 0; pointer-events: none; transition: opacity 0.2s;}
.ts-portal #toast.show{opacity: 1;}
.ts-portal .room-form select{padding: 13px; border: 1px solid var(--line); width: 100%; border-radius: 9px; background: white; margin: 16px 0px;}
.ts-portal .empty-spacing{margin-top: 22px;}
@media (min-width: 1450px){.ts-portal main{padding-top: 45px;}
.ts-portal .hero{height: 310px;}}
@media (max-width: 1100px){.ts-portal .sidebar{width: 220px; padding: 30px 20px;}
.ts-portal .shell{margin-left: 220px;}
.ts-portal main{padding: 28px;}
.ts-portal header{padding: 0px 28px;}
.ts-portal .quick-card{padding: 16px;}
.ts-portal .date-badge{display: none;}
.ts-portal footer{padding: 25px 28px;}
.ts-portal footer span{display: none;}}
@media (max-width: 760px){.ts-portal .sidebar{display: none;}
.ts-portal .shell{margin: 0px;}
.ts-portal header{height: 78px; padding: 0px 22px; background: var(--bg); border: 0px;}
.ts-portal .mobile-brand{display: flex; font-size: 27px;}
.ts-portal .brand-icon{width: 30px; height: 34px; font-size: 30px;}
.ts-portal .breadcrumb{display: none;}
.ts-portal .room-pill{background: white; padding: 9px 13px; font-size: 12px;}
.ts-portal main{padding: 16px 21px 12px;}
.ts-portal .page-top{margin-bottom: 22px;}
.ts-portal h1{font-size: 28px; letter-spacing: -1px; margin-top: 7px;}
.ts-portal .eyebrow{font-size: 11px;}
.ts-portal .page-top p{font-size: 14px;}
.ts-portal .hero{height: 245px; border-radius: 16px;}
.ts-portal .hero-copy{left: 22px; top: 23px; max-width: 240px;}
.ts-portal .hero h2{font-size: 29px; margin-top: 20px;}
.ts-portal .hero p{font-size: 13px; max-width: 205px;}
.ts-portal .hero-location{display: none;}
.ts-portal .hero::after{background: linear-gradient(90deg, rgba(9, 37, 28, 0.8), rgba(9, 37, 28, 0.082));}
.ts-portal .section-heading{margin-top: 25px;}
.ts-portal .section-heading h2{font-size: 18px;}
.ts-portal .section-heading span{font-size: 12px;}
.ts-portal .quick-grid{grid-template-columns: repeat(2, 1fr); gap: 11px;}
.ts-portal .quick-card{padding: 17px; min-height: 137px;}
.ts-portal .quick-card .icon-wrap{margin-bottom: 13px;}
.ts-portal .lower-grid{grid-template-columns: 1fr; gap: 15px; margin-top: 20px;}
.ts-portal .card{padding: 21px;}
.ts-portal .bottom-nav{display: flex; position: fixed; z-index: 5; bottom: 0px; left: 0px; right: 0px; background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(15px); border-top: 1px solid var(--line); padding: 9px 7px calc(10px + env(safe-area-inset-bottom)); justify-content: space-around;}
.ts-portal .bottom-nav .nav-item{flex-direction: column; gap: 5px; font-size: 10px; padding: 7px 13px; border-radius: 11px; min-width: 54px;}
.ts-portal .bottom-nav .nav-item.active{background: rgb(234, 240, 223); color: var(--green);}
.ts-portal .bottom-nav .icon{width: 21px; height: 21px;}
.ts-portal .shell{padding-bottom: 85px;}
.ts-portal footer{padding: 22px; flex-wrap: wrap; gap: 8px;}
.ts-portal footer small{margin-left: auto; font-size: 10px;}
.ts-portal .list-grid{grid-template-columns: 1fr;}
.ts-portal .tabs{gap: 7px;}
.ts-portal .chip{padding: 9px 14px; font-size: 13px;}
.ts-portal #toast{bottom: 100px; max-width: 90%; width: max-content;}
.ts-portal .accordion{padding: 0px;}
.ts-portal .contact-layout .card{padding: 20px;}}
@media (prefers-reduced-motion: reduce){.ts-portal *{animation: auto ease 0s 1 normal none running none !important; transition: none !important;}}
.ts-portal .admin-sidebar{position: fixed; width: 255px; background: white; border-right: 1px solid var(--line); height: 100dvh; padding: 30px 21px; display: flex; flex-direction: column;}
.ts-portal .workspace-tag{font-size: 11px; letter-spacing: 1.8px; color: rgb(124, 137, 127); margin: 13px 0px 30px 44px;}
.ts-portal .hotel-switch{display: flex; gap: 10px; padding: 14px 9px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); align-items: center;}
.ts-portal .hotel-monogram{display: grid; place-items: center; width: 35px; height: 37px; flex-shrink: 0; border-radius: 9px; background: rgb(236, 242, 227); font-size: 12px; font-weight: 700;}
.ts-portal .hotel-switch strong{font-size: 14px; display: block; max-width: 143px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.ts-portal .hotel-switch small{font-size: 11px; color: var(--muted);}
.ts-portal #admin-nav{flex-direction: column; gap: 5px; margin-top: 26px;}
.ts-portal #admin-nav .nav-item{font-size: 14px; padding: 12px 14px;}
.ts-portal .nav-symbol{font-size: 20px; width: 23px; text-align: center;}
.ts-portal .portal-link{margin-top: auto; padding: 18px 12px; font-size: 14px; color: rgb(99, 115, 96); display: flex; justify-content: space-between;}
.ts-portal .admin-account{border-top: 1px solid var(--line); padding-top: 21px; display: flex; gap: 11px; align-items: center; font-size: 12px;}
.ts-portal .admin-account > span{width: 33px; height: 33px; border-radius: 50%; display: grid; place-items: center; background: rgb(233, 237, 220);}
.ts-portal .admin-account small{display: block; color: var(--muted); margin-top: 3px;}
.ts-portal .admin-shell{margin-left: 255px; padding-bottom: 100px;}
.ts-portal .admin-header{height: 79px; padding: 0px 39px; font-size: 14px;}
.ts-portal .mobile-logo{display: none;}
.ts-portal .outline-button{border: 1px solid rgb(214, 223, 214); border-radius: 8px; background: white; color: var(--green); padding: 10px 16px; display: inline-flex; gap: 7px; align-items: center; font-size: 14px; cursor: pointer; white-space: nowrap;}
.ts-portal .outline-button:hover{background: rgb(240, 245, 232);}
.ts-portal .admin-shell main{padding: 33px 39px; max-width: 1320px;}
.ts-portal .admin-title{display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 27px;}
.ts-portal .admin-title h1{font-size: 29px; letter-spacing: -1px;}
.ts-portal .admin-title p{font-size: 14px;}
.ts-portal .online-badge{display: flex; align-items: center; gap: 7px; font-size: 12px; border: 1px solid rgb(215, 226, 205); padding: 8px 12px; border-radius: 30px; background: rgb(237, 244, 229); white-space: nowrap;}
.ts-portal .online-badge::before{content: ""; width: 6px; height: 6px; background: rgb(103, 143, 71); border-radius: 50%;}
.ts-portal .stat-grid{display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-bottom: 26px;}
.ts-portal .stat-card{background: white; border: 1px solid var(--line); border-radius: 13px; padding: 19px 22px;}
.ts-portal .stat-card span{font-size: 13px; color: rgb(104, 123, 108);}
.ts-portal .stat-card strong{display: block; font: 700 31px Manrope; margin: 10px 0px 5px;}
.ts-portal .stat-card small{font-size: 12px; color: rgb(132, 145, 127);}
.ts-portal .dashboard-columns{display: grid; grid-template-columns: 1.65fr 1fr; gap: 22px;}
.ts-portal .admin-panel{border: 1px solid var(--line); background: white; border-radius: 14px; overflow: hidden; margin-bottom: 21px;}
.ts-portal .panel-heading{display: flex; justify-content: space-between; align-items: center; padding: 21px 23px; border-bottom: 1px solid var(--line);}
.ts-portal .panel-heading h2{font-size: 17px;}
.ts-portal .panel-heading small{font-size: 12px; color: var(--muted);}
.ts-portal .manage-row{display: flex; align-items: center; padding: 18px 23px; gap: 14px; border-bottom: 1px solid rgb(237, 240, 233);}
.ts-portal .manage-row:last-child{border: 0px;}
.ts-portal .manage-row:hover{background: rgb(250, 252, 247);}
.ts-portal .manage-row .manage-icon{width: 41px; height: 41px; display: grid; place-items: center; color: rgb(70, 99, 73); background: rgb(237, 242, 229); border-radius: 10px; font-size: 20px;}
.ts-portal .manage-row div{flex: 1 1 0%;}
.ts-portal .manage-row strong{display: block; font-size: 14px;}
.ts-portal .manage-row small{display: block; font-size: 12px; color: var(--muted); margin-top: 5px;}
.ts-portal .manage-row > b{font-size: 19px; font-weight: 400; color: rgb(138, 151, 134);}
.ts-portal .preview-panel{background: var(--green); border: 0px; color: rgb(255, 255, 255); padding: 23px; border-radius: 14px; margin-bottom: 21px;}
.ts-portal .preview-panel .eyebrow{color: rgb(196, 216, 167); font-size: 11px;}
.ts-portal .preview-panel h2{font-size: 22px; line-height: 1.35; margin: 13px 0px 10px;}
.ts-portal .preview-panel p{font-size: 14px; color: rgb(200, 214, 206); margin-bottom: 22px;}
.ts-portal .preview-panel .primary{background: var(--lime); color: var(--green); width: 100%;}
.ts-portal .tip-panel{padding: 22px; background: rgb(237, 241, 229); border-radius: 13px;}
.ts-portal .tip-panel h2{font-size: 15px; margin-bottom: 9px;}
.ts-portal .tip-panel p{font-size: 13px;}
.ts-portal .table-tools{display: flex; justify-content: space-between; align-items: center; gap: 15px; margin: 0px 0px 17px;}
.ts-portal .search-input{border: 1px solid var(--line); padding: 12px 15px; border-radius: 9px; background: white; min-width: 240px; font-size: 14px;}
.ts-portal .table-scroll{overflow-x: auto;}
.ts-portal table{border-collapse: collapse; width: 100%; text-align: left;}
.ts-portal th{font-size: 11px; letter-spacing: 1px; color: rgb(123, 137, 123); background: rgb(248, 250, 246); font-weight: 550; padding: 15px 22px; white-space: nowrap;}
.ts-portal td{padding: 18px 22px; border-top: 1px solid var(--line); font-size: 14px;}
.ts-portal td strong{font-size: 14px; display: block;}
.ts-portal td small{display: block; color: var(--muted); font-size: 12px; margin-top: 6px; max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.ts-portal .status{font-size: 12px; color: rgb(72, 107, 55); background: rgb(237, 244, 230); padding: 5px 10px; border-radius: 20px; display: inline-block; white-space: nowrap;}
.ts-portal .status.off{color: rgb(139, 121, 96); background: rgb(244, 239, 231);}
.ts-portal .row-actions{display: flex; gap: 7px; justify-content: flex-end;}
.ts-portal .icon-button{background: white; border: 1px solid var(--line); padding: 7px 11px; border-radius: 7px; color: rgb(84, 108, 83); font-size: 12px;}
.ts-portal .icon-button.danger{color: rgb(161, 89, 72);}
.ts-portal .form-panel{padding: 25px;}
.ts-portal .form-panel h2{font-size: 18px; margin: 0px 0px 22px;}
.ts-portal .form-grid{display: grid; grid-template-columns: 1fr 1fr; gap: 20px;}
.ts-portal .form-field{display: flex; flex-direction: column; gap: 8px;}
.ts-portal .form-field.full{grid-column: 1 / -1;}
.ts-portal .form-field label{font-size: 14px; font-weight: 550;}
.ts-portal .form-field input,.ts-portal .form-field textarea,.ts-portal .form-field select{border: 1px solid rgb(220, 227, 215); border-radius: 8px; padding: 12px 13px; font: 14px "DM Sans", sans-serif; background: white; color: var(--ink); width: 100%;}
.ts-portal .form-field textarea{min-height: 104px; resize: vertical; line-height: 1.55;}
.ts-portal .form-field small{font-size: 12px; color: var(--muted);}
.ts-portal #save-bar{position: fixed; bottom: 20px; left: calc(294px); right: 39px; z-index: 5; max-width: 1200px; background: rgb(255, 255, 255); border: 1px solid rgb(204, 216, 199); box-shadow: rgba(21, 57, 37, 0.11) 0px 8px 35px; border-radius: 13px; padding: 16px 20px; display: flex; align-items: center; gap: 12px;}
.ts-portal #save-bar[hidden]{display: none;}
.ts-portal #save-bar > div{flex: 1 1 0%;}
.ts-portal #save-bar strong{display: block; font-size: 14px;}
.ts-portal #save-bar span{font-size: 12px; color: var(--muted); display: block; margin-top: 3px;}
.ts-portal #save-bar button:disabled{opacity: 0.6; cursor: wait;}
.ts-portal #admin-dialog{width: min(570px, 100% - 30px); max-height: 90dvh;}
.ts-portal #admin-dialog .dialog-actions{display: flex; justify-content: flex-end; gap: 10px; margin-top: 23px;}
.ts-portal #admin-dialog .form-grid{gap: 15px;}
.ts-portal .check-field{display: flex; align-items: center; gap: 10px; font-size: 14px; margin-top: 18px;}
.ts-portal .check-field input{width: 17px; height: 17px; accent-color: var(--green);}
.ts-portal .error-message{background: rgb(255, 240, 235); color: rgb(155, 70, 52); padding: 14px; border-radius: 9px; margin: 0px 0px 18px; font-size: 14px; line-height: 1.5;}
.ts-portal .empty-state{padding: 45px 20px; text-align: center; color: var(--muted); font-size: 14px;}
.ts-portal .loading-state{padding: 50px; text-align: center; color: var(--muted);}
.ts-portal .room-link{font-size: 13px; word-break: break-all; padding: 14px; background: rgb(242, 245, 238); border-radius: 9px; margin: 15px 0px;}
.ts-portal .footer-note{font-size: 12px; color: var(--muted); margin-top: 18px;}
.ts-portal .mobile-section-select{display: none;}
@media (max-width: 1150px){.ts-portal .stat-card{padding: 18px;}
.ts-portal .admin-shell main{padding: 28px;}
.ts-portal .dashboard-columns{grid-template-columns: 1.4fr 1fr;}
.ts-portal .admin-sidebar{width: 225px;}
.ts-portal .admin-shell{margin-left: 225px;}
.ts-portal #save-bar{left: 250px;}
.ts-portal .admin-title h1{font-size: 26px;}
.ts-portal td,.ts-portal th{padding: 16px;}
.ts-portal .admin-header{padding: 0px 28px;}}
@media (max-width: 800px){.ts-portal .admin-sidebar{position: static; width: auto; height: auto; padding: 19px 20px 0px; border-right: 0px; border-bottom: 1px solid var(--line);}
.ts-portal .admin-sidebar > .brand{font-size: 26px;}
.ts-portal .workspace-tag{position: absolute; right: 20px; top: 31px; margin: 0px; font-size: 10px;}
.ts-portal .hotel-switch,.ts-portal .portal-link,.ts-portal .admin-account{display: none;}
.ts-portal #admin-nav{flex-direction: row; margin-top: 18px; overflow: auto; gap: 4px; padding-bottom: 12px;}
.ts-portal #admin-nav .nav-item{white-space: nowrap; font-size: 12px; padding: 9px 11px; gap: 6px;}
.ts-portal #admin-nav .nav-symbol{font-size: 16px; width: 17px;}
.ts-portal .admin-shell{margin: 0px;}
.ts-portal .admin-header{height: 63px; padding: 0px 20px;}
.ts-portal .admin-shell main{padding: 25px 20px;}
.ts-portal .admin-title{align-items: flex-start; margin-bottom: 22px;}
.ts-portal .admin-title h1{font-size: 25px;}
.ts-portal .admin-title p{font-size: 13px; max-width: 250px;}
.ts-portal .online-badge{font-size: 10px; padding: 7px 9px;}
.ts-portal .stat-grid{grid-template-columns: 1fr 1fr; gap: 10px;}
.ts-portal .stat-card strong{font-size: 27px;}
.ts-portal .dashboard-columns{grid-template-columns: 1fr;}
.ts-portal .dashboard-columns > div:last-child{display: grid; grid-template-columns: 1fr 1fr; gap: 12px;}
.ts-portal .preview-panel{margin-bottom: 0px; padding: 19px;}
.ts-portal .preview-panel h2{font-size: 19px;}
.ts-portal .preview-panel p,.ts-portal .tip-panel p{font-size: 12px;}
.ts-portal .tip-panel{padding: 19px;}
.ts-portal .form-grid{grid-template-columns: 1fr;}
.ts-portal .form-panel{padding: 20px;}
.ts-portal #save-bar{left: 12px; right: 12px; bottom: 12px; padding: 12px; gap: 8px;}
.ts-portal #save-bar span{display: none;}
.ts-portal #save-bar strong{font-size: 12px;}
.ts-portal #save-bar button{padding: 11px; font-size: 12px;}
.ts-portal .search-input{min-width: 0px; width: 100%;}
.ts-portal .table-tools{gap: 10px;}
.ts-portal .table-tools .primary{white-space: nowrap; font-size: 12px;}
.ts-portal .admin-title > .primary{font-size: 12px; padding: 11px;}
.ts-portal td small{max-width: 170px;}
.ts-portal td,.ts-portal th{padding: 15px;}
.ts-portal .admin-panel{border-radius: 11px;}
.ts-portal .row-actions{justify-content: flex-start;}
.ts-portal .icon-button{font-size: 12px;}
.ts-portal .panel-heading{padding: 18px;}
.ts-portal .manage-row{padding: 17px 18px;}
.ts-portal #toast{bottom: 92px;}
.ts-portal dialog{padding: 24px;}
.ts-portal .form-field.full{grid-column: auto;}}
@media (max-width: 420px){.ts-portal .dashboard-columns > div:last-child{grid-template-columns: 1fr;}
.ts-portal .stat-card{padding: 16px;}
.ts-portal .online-badge{display: none;}}
#brx-header,#brx-footer{display:none;}#brx-content{max-width:none;width:100%;padding:0;margin:0;display:block;}body{background:#f6f8f5;}.ts-portal{display:block!important;width:100%;min-height:100dvh;font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.5;}.ts-portal [hidden]{display:none!important;}.ts-portal h1,.ts-portal h2,.ts-portal h3{color:inherit;}.ts-portal .hero h2{color:white;}.ts-portal .brand-icon{flex:none;}.ts-portal .sidebar,.ts-portal .admin-sidebar{top:0;z-index:7;}.admin-bar .ts-portal .sidebar,.admin-bar .ts-portal .admin-sidebar{top:32px;height:calc(100dvh - 32px);}.ts-portal .demo-tools{max-width:1200px;padding:12px 44px 0;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:#75807c;}.ts-portal .demo-tools>div{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}.ts-portal .demo-tools a{text-decoration:underline;text-underline-offset:3px;}.ts-portal .demo-tools button{border:1px solid #dce3d7;background:transparent;color:#52674f;padding:5px 9px;border-radius:7px;font-size:11px;}.ts-portal .guide-search{display:block;font-size:12px;color:#75807c;margin-bottom:17px;}.ts-portal .guide-search input{display:block;width:100%;margin-top:7px;}.ts-portal input,.ts-portal textarea{min-height:44px;}.ts-portal .contact-buttons{display:flex;gap:9px;flex-wrap:wrap;align-items:center;}.ts-portal .contact-buttons .secondary{margin-top:0;}.ts-portal .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;}.ts-portal dialog{max-height:90dvh;overflow:auto;}.ts-portal .empty-state{padding:28px;}.ts-portal #toast{z-index:9999;}.ts-portal .icon-button{min-height:34px;}.ts-portal .footer-note{line-height:1.6;}.ts-portal .sidebar .side-bottom{padding-bottom:10px;}@media(max-width:800px){.ts-portal .demo-tools{padding:12px 20px 0;align-items:flex-start;flex-direction:column;gap:7px;}.ts-portal .admin-sidebar{top:auto!important;height:auto!important;}.ts-portal .admin-header{gap:12px;}.ts-portal .admin-title{flex-wrap:wrap;}.ts-portal .admin-title p{max-width:none;}}@media(max-width:760px){.ts-portal .bottom-nav .nav-item{padding:7px 10px;}.ts-portal .detail-row{flex-wrap:wrap;}.ts-portal .sidebar{display:none;}.ts-portal .brand{white-space:nowrap;}.ts-portal .admin-shell{padding-bottom:110px;}}

body:has(.ts-portal){margin:0;background:#f6f8f5}body:has(.ts-portal) #brx-content{width:100%;max-width:none;padding:0} .ts-portal{width:100%;min-height:100vh}.ts-portal .close{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;line-height:1!important;text-align:center!important}.ts-portal .hero{background:linear-gradient(130deg,#173f38,#34564c)}.ts-portal [hidden]{display:none!important}.ts-portal .ts-load-error{max-width:700px;margin:60px auto;padding:30px}.ts-portal .demo-tools{gap:14px;flex-wrap:wrap}.ts-portal .demo-tools>div{flex-wrap:wrap}.ts-portal .brand-icon{flex-shrink:0}.ts-portal [data-publish]{background:#173f38;color:#fff;padding:10px 16px;border-radius:8px}.ts-portal .room-link{overflow-wrap:anywhere}

body:has(.ts-portal) #brx-content>h1{display:none}.ts-portal .demo-tools [data-publish]{background:#173f38;color:white;padding:10px 16px}.ts-portal .hero{min-height:300px}

.ts-portal .photo-panel{margin-top:22px}.ts-portal .photo-preview{aspect-ratio:16/7;max-width:800px;border-radius:16px;background:#173f38 center/cover;display:flex;align-items:flex-end;padding:24px;position:relative;overflow:hidden;margin:20px 0}.ts-portal .photo-preview:before{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.55))}.ts-portal .photo-preview span{position:relative;color:white;font-size:26px;font-weight:600}.ts-portal .photo-upload-label{display:block;font-weight:600;margin-bottom:8px}.ts-portal #welcome-photo{width:100%;max-width:100%;padding:10px;border:1px solid #dce2d5;border-radius:8px;background:white}.ts-portal .photo-panel select{width:100%;min-height:44px;padding:10px;border:1px solid #dce2d5;border-radius:8px;background:white}.ts-portal .hero>img{width:100%;height:100%;object-fit:cover}.ts-portal #photo-status{font-size:14px;color:#173f38}@media(max-width:600px){.ts-portal .photo-preview{aspect-ratio:4/3}}

.ts-portal #welcome-photo{padding:8px;color:#74847c;font-size:14px;line-height:1.5;font-family:inherit}.ts-portal #welcome-photo::file-selector-button{border:0;border-radius:8px;padding:12px 18px;background:#173f38;color:white;font:600 14px system-ui,sans-serif;margin-right:14px;cursor:pointer}.ts-portal #welcome-photo::file-selector-button:hover{background:#24574d}.ts-portal #welcome-photo:focus-visible{outline:2px solid #88a632;outline-offset:3px}

.ts-portal .setup-checklist{margin:24px 0;padding:26px}.ts-portal .setup-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.ts-portal .setup-checklist h2{margin:8px 0}.ts-portal .setup-checklist p{color:#74847c;font-size:14px;margin:5px 0}.ts-portal .setup-checklist ol{list-style:none;padding:0;margin:20px 0}.ts-portal .setup-checklist li{display:flex;align-items:center;gap:16px;padding:16px 0;border-top:1px solid #e3e8e4}.ts-portal .setup-checklist li>span{font-size:22px;color:#829a4b}.ts-portal .setup-checklist li>div{flex:1}.ts-portal .setup-checklist .outline-button{flex-shrink:0}.ts-portal .setup-empty{padding:32px}.ts-portal .setup-empty p{margin:18px 0 26px}@media(max-width:600px){.ts-portal .setup-heading{align-items:flex-start;flex-direction:column}.ts-portal .setup-checklist{padding:20px}.ts-portal .setup-checklist li{flex-wrap:wrap}.ts-portal .setup-checklist li>.outline-button{margin-left:36px}.ts-portal .setup-checklist li>div{min-width:180px}}

/* Keep welcome copy at the bottom, while allowing longer copy to grow the card. */
.ts-portal .hero{height:auto;min-height:310px}
.ts-portal .hero>img{position:absolute;inset:0}
.ts-portal .hero-copy{position:relative;left:auto;top:auto;display:flex;flex-direction:column;align-items:flex-start;box-sizing:border-box;width:392px;max-width:100%;min-height:310px;padding:31px;overflow-wrap:anywhere}
.ts-portal .hero-tag{flex:none}
.ts-portal .hero-copy h2{margin: auto 0 10px;padding-top:24px}
.ts-portal .hero-copy p{margin:0}
@media(max-width:600px){.ts-portal .hero-copy{width:284px;padding:23px 22px;min-height:300px}.ts-portal .hero{min-height:300px}}

.ts-portal button[data-publish],.ts-portal button[data-confirm-publish]{background:#173f38;color:#fff;border-color:#173f38;transition:background-color .15s,border-color .15s}
.ts-portal button[data-publish]:hover,.ts-portal button[data-confirm-publish]:hover{background:#24574d;color:#fff;border-color:#24574d}
.ts-portal button[data-publish]:focus-visible,.ts-portal button[data-confirm-publish]:focus-visible{outline:3px solid #88a632;outline-offset:3px}
.ts-portal button[data-publish]:active,.ts-portal button[data-confirm-publish]:active{background:#102f29;color:#fff;border-color:#102f29}

.ts-portal .ts-billing-content{min-height:0;display:block;background:transparent;font:inherit}.ts-portal .ts-billing-content .ts-empty{margin:22px 0}.ts-portal .ts-billing-content .ts-action{font-size:14px}.ts-portal .ts-billing-content h2{font-size:22px}

.ts-portal .shared-guide-panel{margin-bottom:24px}.ts-portal .shared-guide-panel h2{margin:14px 0}.ts-portal .shared-guide-panel .row-actions{flex-wrap:wrap;gap:12px}.ts-portal .room-guide-fields{margin:20px 0;padding-top:20px;border-top:1px solid #dce2d5}.ts-portal .room-guide-fields select{width:100%;padding:12px;border:1px solid #dce2d5;border-radius:8px;background:white;color:#173f38;font:inherit}.ts-portal .room-guide-fields [hidden]{display:none}.ts-portal .room-notes{margin:24px 0}.ts-portal .room-link{overflow-wrap:anywhere}
.ts-portal .emergency-shortcut{margin:0 0 22px}.ts-portal .card .row-actions{flex-wrap:wrap;gap:12px}.ts-portal .room-notes p{overflow-wrap:anywhere}

.ts-portal .admin-sidebar{overflow-y:auto}.ts-portal #admin-nav{flex-shrink:0}.ts-portal .admin-sidebar>.brand,.ts-portal .hotel-switcher{flex-shrink:0}

/* Hide scrollbar chrome without changing scroll or keyboard access. */
html:has(body.ts-portal), .ts-portal, .ts-portal *{scrollbar-width:none}
html:has(body.ts-portal)::-webkit-scrollbar,.ts-portal::-webkit-scrollbar,.ts-portal *::-webkit-scrollbar{display:none;width:0;height:0}

/* Compact category controls shared by the workspace and demo. */
.ts-portal .category-chip{display:inline-flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:1px solid #dce2d5;border-radius:24px;background:#f4f7ef;max-width:100%;overflow-wrap:anywhere}
.ts-portal .category-chip button{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:#193f37;font:24px/1 sans-serif;cursor:pointer}
.ts-portal .category-chip button:hover{background:#dfe9d2}.ts-portal .category-chip button:focus-visible{outline:2px solid #829f42;outline-offset:2px}.ts-portal .category-chip small{padding:8px;color:#52665b}
@media(max-width:600px){.ts-portal[data-mode="guest"] .hero,.ts-portal[data-mode="guest"] .hero-copy{min-height:250px}.ts-portal[data-mode="guest"] .hero-copy{width:100%;padding:24px 22px}.ts-portal[data-mode="guest"] .hero-copy h2{font-size:28px}.ts-portal[data-mode="guest"] .hero-location{display:none}}

/* Visual audit: consistent list tools, form spacing and mobile welcome preview. */
.ts-portal .table-tools>span{flex-shrink:0;white-space:nowrap}
.ts-portal .table-tools .search-input{min-width:0;flex:1}
.ts-portal .form-panel>.footer-note+.tabs{margin-top:14px}
.ts-portal .ts-billing-content h3{font-size:18px;line-height:1.4;margin:28px 0 12px}
.ts-portal .welcome-card-preview .hero h2{font-size:34px}
.ts-portal .form-field{min-width:0}
@media(max-width:760px){.ts-portal .welcome-card-preview .hero h2{font-size:29px}}
@media(max-width:600px){.ts-portal .welcome-card-preview .hero,.ts-portal .welcome-card-preview .hero-copy{min-height:250px}.ts-portal .welcome-card-preview .hero-copy{width:100%;padding:24px 22px}.ts-portal .welcome-card-preview .hero h2{font-size:28px}.ts-portal .welcome-card-preview .hero-location{display:none}}

/* Property assistant: scoped to the existing portal. */
.ts-portal .ts-ai-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:24px;align-items:start}
.ts-portal .ts-ai-panel{padding:clamp(22px,3vw,34px);min-width:0;display:flex;flex-direction:column;gap:18px}
.ts-portal .ts-ai-panel h2,.ts-portal .ts-ai-panel p{margin:0}
.ts-portal .ts-ai-panel label{display:block;font-weight:600;margin:6px 0 0}
.ts-portal .ts-ai-panel .check-field{display:flex;align-items:center;gap:12px}
.ts-portal .ts-ai-panel input:not([type=checkbox]),.ts-portal .ts-ai-panel textarea,.ts-portal .ts-ai-panel select{width:100%;min-width:0;box-sizing:border-box;padding:13px 15px;border:1px solid #cbd9cf;border-radius:10px;background:white;color:#173f38;font:inherit}
.ts-portal .ts-ai-panel textarea{resize:vertical;line-height:1.65}
.ts-portal .ts-ai-panel input[type=checkbox]{width:18px;height:18px;accent-color:#173f38;flex-shrink:0}
.ts-portal .ts-ai-note{padding:18px;background:#f3f6ec;border-radius:12px;font-size:13px;line-height:1.7}
.ts-portal .ts-ai-note p{margin:8px 0}
.ts-portal .ts-ai-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:6px}
.ts-portal .ts-ai-faq{display:flex;flex-direction:column;gap:12px;margin:0 0 22px;padding:20px;border:1px solid #dce4da;border-radius:14px;min-width:0}
.ts-portal .ts-ai-faq legend{padding:0 8px;font-weight:600}
.ts-portal .ts-ai-faq button{align-self:flex-start;margin-top:4px}
.ts-portal .ts-ai-actions{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}
.ts-portal .ts-ai-actions button{white-space:normal;text-align:left}
.ts-portal #ai-question-form{display:flex;flex-direction:column;gap:14px}
.ts-portal #ai-answer-status,.ts-portal #ai-save-status{line-height:1.65;font-size:13px;overflow-wrap:anywhere}
.ts-portal .ts-ai-transcript{display:flex;flex-direction:column;gap:16px;max-height:480px;overflow:auto}
.ts-portal .ts-ai-transcript:empty{display:none}
.ts-portal .ts-ai-message{padding:18px;border-radius:14px;background:#f2f5ef;overflow-wrap:anywhere}
.ts-portal .ts-ai-message p{white-space:pre-wrap;line-height:1.7;margin:8px 0 0}
.ts-portal .ts-ai-user{background:#173f38;color:#fff;margin-left:20px}
.ts-portal .ts-ai-guest{max-width:960px}
.ts-portal .ts-ai-shortcut{position:fixed;right:24px;bottom:24px;z-index:35;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:52px;padding:15px;background:#173f38;color:#fff;border-radius:40px;box-shadow:0 5px 24px #173f3826;text-decoration:none;font-weight:600;line-height:22px}
.ts-portal .ts-ai-shortcut-icon{display:block;flex:0 0 22px}
.ts-portal .ts-ai-shortcut-label{max-width:0;margin-left:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .32s ease,margin-left .32s ease,opacity .2s ease}
.ts-portal .ts-ai-shortcut.ts-ai-intro .ts-ai-shortcut-label,.ts-portal .ts-ai-shortcut:focus-visible .ts-ai-shortcut-label{max-width:120px;margin-left:10px;opacity:1}
.ts-portal .ts-ai-shortcut:focus-visible{outline:3px solid #88ad77;outline-offset:4px}
@media(hover:hover) and (pointer:fine){.ts-portal .ts-ai-shortcut:hover .ts-ai-shortcut-label{max-width:120px;margin-left:10px;opacity:1}}
@media(prefers-reduced-motion:reduce){.ts-portal .ts-ai-shortcut-label{transition:none}}
.ts-portal .ts-ai-shortcut[hidden],.ts-portal .ts-ai-nav[hidden]{display:none}
.ts-portal button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:1100px){.ts-portal .ts-ai-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.ts-portal .ts-ai-shortcut{bottom:calc(88px + env(safe-area-inset-bottom));right:16px;font-size:13px}.ts-portal .ts-ai-faq{padding:16px}.ts-portal .ts-ai-panel{gap:16px}.ts-portal .ts-ai-user{margin-left:8px}.ts-portal .ts-ai-actions>*{max-width:100%}}
/* Guest chat stays separate from the guide route and host editor. */
html.ts-ai-chat-open{overflow:hidden}
.ts-portal dialog.ts-ai-chat{position:fixed;inset:auto 24px 24px auto;margin:0;width:420px;max-width:calc(100vw - 32px);height:min(720px,calc(100dvh - 64px));max-height:calc(100dvh - 64px);padding:0;border:1px solid #d4dfcf;border-radius:22px;background:#fff;color:#173f38;box-shadow:0 18px 70px #173f3833;overflow:hidden;font-size:14px}
.ts-portal .ts-ai-chat[open]{display:flex;flex-direction:column}
.ts-portal .ts-ai-chat::backdrop{background:#102b2526}
.ts-portal .ts-ai-chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:20px;background:#f5f7ed;border-bottom:1px solid #dbe3d3}
.ts-portal .ts-ai-chat-brand{display:flex;align-items:center;gap:8px;font-size:27px;font-weight:800;letter-spacing:-1px;line-height:1.2}
.ts-portal .ts-ai-chat-brand span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#173f38;color:#d3dfae;font-size:28px}
.ts-portal .ts-ai-chat-header p{margin:5px 0 0;font-size:12px;color:#63796d}
.ts-portal .ts-ai-chat-tools{display:flex;align-items:center;gap:6px}
.ts-portal .ts-ai-chat-tools button{border:0;background:transparent;color:#46685b;min-height:44px;padding:8px;font:inherit;font-size:12px}
.ts-portal .ts-ai-chat-tools [data-ai-close]{font-size:26px;min-width:44px}
.ts-portal .ts-ai-chat-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px;scrollbar-width:thin}
.ts-portal .ts-ai-welcome{padding:18px;border-radius:16px;background:#eff4e5;line-height:1.65}
.ts-portal .ts-ai-welcome p{margin:8px 0 0}
.ts-portal .ts-ai-chat .ts-ai-suggestions{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:18px 0 0}
.ts-portal .ts-ai-chat .ts-ai-suggestions[hidden]{display:none}
.ts-portal .ts-ai-chat .ts-ai-suggestions button{border:1px solid #d4dfcf;border-radius:11px;background:white;color:#173f38;padding:12px 14px;font:inherit;font-size:12px;line-height:1.5;text-align:left;min-height:44px}
.ts-portal .ts-ai-chat .ts-ai-transcript{overflow:visible;max-height:none;margin-top:18px;gap:14px}
.ts-portal .ts-ai-chat .ts-ai-message{padding:15px;font-size:13px}
.ts-portal .ts-ai-chat-bottom{flex-shrink:0;padding:16px 20px 18px;border-top:1px solid #dbe3d3;background:#fff}
.ts-portal .ts-ai-chat #ai-question-form{gap:10px}
.ts-portal .ts-ai-chat label{font-size:13px;font-weight:600}
.ts-portal .ts-ai-chat textarea{display:block;box-sizing:border-box;width:100%;min-width:0;height:68px;max-height:110px;resize:none;padding:12px 14px;border:1px solid #d4dfcf;border-radius:12px;background:#fff;color:#173f38;font:inherit;line-height:1.5}
.ts-portal .ts-ai-chat .primary{min-height:44px;border:0;border-radius:11px;background:#173f38;color:#fff;font:inherit;font-weight:600;padding:12px 16px}
.ts-portal .ts-ai-chat #ai-answer-status{margin:0;font-size:12px}
.ts-portal .ts-ai-chat #ai-answer-status:empty{display:none}
.ts-portal .ts-ai-chat-disclaimer{margin:12px 0;font-size:10px;line-height:1.6;color:#667a70}
.ts-portal .ts-ai-chat-links{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px}
.ts-portal .ts-ai-chat-links .outline-button{padding:10px 12px;min-height:40px;display:flex;align-items:center;border:1px solid #d4dfcf;border-radius:9px}
@media(max-width:760px){.ts-portal dialog.ts-ai-chat{inset:auto 8px max(8px,env(safe-area-inset-bottom)) 8px;width:auto;max-width:none;height:calc(100dvh - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:18px}.ts-portal .ts-ai-chat-header{padding:14px 16px}.ts-portal .ts-ai-chat-scroll{padding:16px}.ts-portal .ts-ai-chat-bottom{padding:12px 16px 14px}.ts-portal .ts-ai-chat textarea{font-size:16px}}
@media(max-height:540px){.ts-portal dialog.ts-ai-chat{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);bottom:8px}.ts-portal .ts-ai-chat-header{padding:6px 14px}.ts-portal .ts-ai-chat-bottom{padding:8px 14px}.ts-portal .ts-ai-chat textarea{height:48px}.ts-portal .ts-ai-chat-disclaimer{margin:6px 0;font-size:9px}}
.ts-portal .ts-ai-reply-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ts-portal .ts-ai-reply-actions:empty{display:none}
.ts-portal .ts-ai-reply-actions button{border:1px solid #bbcdb9;border-radius:10px;background:#fff;color:#173f38;padding:10px 12px;min-height:44px;font:inherit;font-size:12px;line-height:1.4;text-align:left}
.ts-portal .ts-ai-quick{margin-top:18px;font-size:12px}
.ts-portal .ts-ai-quick summary{cursor:pointer;padding:10px 0;color:#46685b;font-weight:600}
/* Keep footer links clear of the floating assistant. */
.ts-portal[data-mode="guest"] .shell>footer{padding-right:100px!important}
@media(max-width:760px){.ts-portal[data-mode="guest"] .shell>footer{flex-direction:column;align-items:flex-start;gap:5px;padding:18px 84px 18px 20px!important}.ts-portal[data-mode="guest"] footer small{margin-left:0;white-space:normal}.ts-portal[data-mode="guest"] footer a{display:inline-block;text-decoration:underline;text-underline-offset:3px}}
@keyframes ts-chat-enter{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ts-chat-leave{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.98)}}
.ts-portal dialog.ts-ai-chat[open]{animation:ts-chat-enter .22s ease-out both}
.ts-portal dialog.ts-ai-chat.ts-ai-closing{animation:ts-chat-leave .18s ease-in both;pointer-events:none}
.ts-portal dialog.ts-leave-dialog{border:1px solid #d4dfcf;border-radius:22px;background:#f7f8f0;color:#173f38;padding:28px;max-width:min(520px,calc(100vw - 32px))}
.ts-portal .ts-leave-brand{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:800;margin-bottom:22px;letter-spacing:-.8px}
.ts-portal .ts-leave-brand span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#173f38;color:#d3dfae}
.ts-portal .ts-leave-dialog p{line-height:1.7}
.ts-portal .ts-leave-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.ts-portal .ts-leave-actions button{min-height:44px}
@media(prefers-reduced-motion:reduce){.ts-portal dialog.ts-ai-chat[open],.ts-portal dialog.ts-ai-chat.ts-ai-closing{animation:none}}
.ts-portal dialog.ts-leave-dialog .modal-head .close{position:absolute;top:16px;right:16px;margin:0;width:44px;height:44px;display:grid;place-items:center}
.ts-portal .ts-leave-dialog .ts-leave-brand{padding-right:48px}
/* Slightly tighten the space below the guest header. */
.ts-portal[data-mode="guest"] .shell>#app{padding-top:28px}
@media(min-width:1450px){.ts-portal[data-mode="guest"] .shell>#app{padding-top:36px}}
@media(max-width:1100px){.ts-portal[data-mode="guest"] .shell>#app{padding-top:22px}}
@media(max-width:760px){.ts-portal[data-mode="guest"] .shell>#app{padding-top:12px}}
.ts-portal .ts-ai-chat-links{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.ts-portal .ts-ai-chat-links .outline-button{justify-content:center;text-align:center;min-height:44px;padding:10px 8px}

.ts-ai-thinking{display:flex;align-items:center;gap:10px;color:#173f38;padding:10px 0}.ts-ai-spinner{display:inline-block;width:16px;height:16px;flex:0 0 16px;border:2px solid #d5dfd5;border-top-color:#173f38;border-radius:50%;animation:ts-ai-spin .8s linear infinite}@keyframes ts-ai-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ts-ai-spinner{animation:none}}

.ts-portal .ts-web-intro{display:flex;flex-direction:column;gap:16px;padding:28px;margin-bottom:24px}
.ts-portal .ts-web-intro h2,.ts-portal .ts-web-intro p{margin:0}
.ts-portal .ts-web-intro label{display:block;font-weight:600;font-size:14px}
.ts-portal .ts-web-intro input:not([type=checkbox]):not([type=radio]),.ts-portal .ts-web-intro textarea,.ts-portal .ts-web-intro select{box-sizing:border-box;width:100%;padding:12px 14px;border:1px solid #cbd9cf;border-radius:10px;background:#fff;color:#173f38;font:inherit;margin-top:6px}
.ts-portal .ts-web-intro .check-field{display:flex;align-items:center;gap:10px;line-height:1.6}
.ts-portal .ts-web-intro input[type=checkbox],.ts-portal .ts-web-intro input[type=radio]{accent-color:#173f38;width:18px;height:18px;flex-shrink:0}
.ts-portal .ts-web-item{display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid #d4dfcf;border-radius:14px;min-width:0}
.ts-portal .ts-web-item legend{font-weight:700;padding:0 8px}
.ts-portal .ts-web-existing{padding:12px;background:#f2f5e9;border-radius:8px;overflow-wrap:anywhere}
.ts-portal .ts-web-item details{font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.ts-portal .ts-web-item summary{cursor:pointer;color:#173f38}
.ts-portal .ts-web-item details p{margin:10px 0}
.ts-portal .ts-web-item a{text-decoration:underline}
.ts-portal .ts-web-photo{display:flex!important;gap:12px;align-items:center}
.ts-portal .ts-web-photo img{width:160px;height:90px;object-fit:cover;border-radius:10px}
.ts-portal .ts-web-start{margin:0 0 24px;padding:22px;border:1px solid #d4dfcf;border-radius:14px;background:#f4f7ec;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:760px){.ts-portal .ts-web-intro{padding:20px}.ts-portal .ts-web-item{padding:16px}}
/* Website import review and honest, phase-based progress. */
.ts-web-category{border:1px solid #d5dfd3;border-radius:14px;margin:16px 0;background:#fff;overflow:hidden}.ts-web-category>summary{padding:20px;cursor:pointer;display:flex;align-items:center;gap:12px;justify-content:space-between;font-weight:600;color:#183f37}.ts-web-category>summary:before{content:'+';font-size:22px}.ts-web-category[open]>summary:before{content:'−'}.ts-web-category>summary>span:first-of-type{margin-right:auto}.ts-web-count{font-size:12px;font-weight:400;color:#657c76}.ts-web-category-body{padding:0 20px 8px}.ts-web-category-body .ts-web-item{margin:16px 0 24px}.ts-web-category>summary:focus-visible,.ts-web-notices>summary:focus-visible{outline:2px solid #8ca94c;outline-offset:-4px}.ts-web-notices,.ts-web-pages{padding:14px 18px;background:#f5f7ef;border-radius:12px;margin:16px 0;font-size:13px}.ts-web-notices>summary{cursor:pointer;font-weight:600}.ts-web-notices>summary span{font-weight:400;margin-left:8px}.ts-web-notices li{margin:12px 0;overflow-wrap:anywhere}.ts-web-progress{margin-top:20px;padding:22px;border:1px solid #d5dfd3;border-radius:16px;background:#f5f7ef}.ts-web-progress-head{display:flex;align-items:center;gap:16px}.ts-web-progress-head p{margin:6px 0 0;font-size:13px}.ts-web-orbit{flex:0 0 44px;height:44px;display:grid;place-items:center;background:#183f37;color:#e9efbf;font-size:28px;font-weight:700;border-radius:13px}.is-running .ts-web-orbit{animation:ts-web-breathe 1.8s ease-in-out infinite}.ts-web-track{height:6px;border-radius:8px;background:#dce5d5;margin-top:20px;overflow:hidden}.ts-web-track>span{display:block;height:100%;border-radius:8px;background:#7e9b48;transition:width .5s ease}.is-running .ts-web-track[aria-hidden]>span{animation:ts-web-slide 2s ease-in-out infinite}.ts-web-metrics{font-size:13px;margin:12px 0}.ts-web-technical{font-size:12px;overflow-wrap:anywhere;margin:12px 0}.ts-web-technical summary{cursor:pointer}.ts-web-error{padding:12px;border-left:3px solid #b46b32;background:#fff4e8;font-size:13px}@keyframes ts-web-breathe{50%{box-shadow:0 0 0 7px #183f3712;transform:scale(.96)}}@keyframes ts-web-slide{50%{transform:translateX(230%)}}@media(prefers-reduced-motion:reduce){.ts-web-progress *{animation:none!important;transition:none!important}}@media(max-width:600px){.ts-web-category>summary{flex-wrap:wrap;padding:16px}.ts-web-count{width:100%;padding-left:24px}.ts-web-category-body{padding:0 12px 8px}.ts-web-progress{padding:16px}}

.ts-web-pick{border:0;padding:0;margin:0 0 24px}.ts-web-pick legend{font-weight:700;margin-bottom:8px}.ts-web-pick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ts-web-pick-grid>label{display:flex!important;align-items:flex-start;gap:12px;padding:16px;margin:0!important;border:1px solid #d4ddce;border-radius:12px;cursor:pointer}.ts-web-pick-grid>label:has(input:checked){background:#f0f4e7;border-color:#173f37}.ts-web-pick-grid input{width:18px!important;height:18px;margin:3px 0 0!important;flex-shrink:0;accent-color:#173f37}.ts-web-pick-grid strong,.ts-web-pick-grid small{display:block}.ts-web-pick-grid small{font-size:12px;margin-top:5px;font-weight:400}.ts-web-pick-grid label:focus-within{outline:2px solid #799e45;outline-offset:2px}@media(max-width:600px){.ts-web-pick-grid{grid-template-columns:1fr}}

.ts-web-pick-grid strong{color:#173f37}.ts-web-pick-grid small{color:#61716c}

.ts-time-picker{margin:8px 0 18px;color:#173f37}.ts-time-picker>summary{cursor:pointer;font-size:13px;font-weight:600;padding:8px 0;width:fit-content}.ts-time-body{padding:18px;background:#f5f7ee;border:1px solid #d4ddce;border-radius:12px;margin-top:6px}.ts-time-slots{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}.ts-time-slots fieldset{display:flex;align-items:flex-end;gap:8px;border:0;padding:0;margin:0}.ts-time-slots legend{font-size:13px;font-weight:600;margin-bottom:8px}.ts-time-slots label{margin:0!important;font-size:12px;color:#536b64}.ts-time-slots select{display:flex!important;align-items:center;gap:8px!important;min-width:72px;width:80px!important;max-width:100%;padding:10px!important;margin:5px 0 0!important;color:#173f37;border:1px solid #b9cabc;background:#fff;border-radius:8px}.ts-time-slots fieldset>span{padding-bottom:12px}.ts-time-actions{display:flex;gap:10px;flex-wrap:wrap}.ts-time-picker summary:focus-visible,.ts-time-picker select:focus-visible{outline:2px solid #799e45;outline-offset:3px}.ts-time-error{color:#93432e;font-size:13px}.ts-time-error:empty{display:none}

.ts-portal #modal.ts-wifi-motion[open]{animation:ts-wifi-in 200ms ease-out both;will-change:transform,opacity}
.ts-portal #modal.ts-wifi-motion[open]::backdrop{animation:ts-wifi-backdrop-in 200ms ease-out both}
.ts-portal #modal.ts-wifi-motion.ts-wifi-closing[open]{animation:ts-wifi-out 200ms ease-in both;pointer-events:none}
.ts-portal #modal.ts-wifi-motion.ts-wifi-closing[open]::backdrop{animation:ts-wifi-backdrop-out 200ms ease-in both}
@keyframes ts-wifi-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes ts-wifi-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}
@keyframes ts-wifi-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes ts-wifi-backdrop-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){.ts-portal #modal.ts-wifi-motion[open],.ts-portal #modal.ts-wifi-motion[open]::backdrop{animation:none;will-change:auto}}

/* One content grid for all host workspace sections; guest layout is unchanged. */
.ts-portal[data-mode="host"] .admin-shell{--ts-host-width:1320px;--ts-host-gutter:39px}
.ts-portal[data-mode="host"] .admin-shell>#admin-app,
.ts-portal[data-mode="host"] .admin-shell>.demo-tools,
.ts-portal[data-mode="host"] .admin-shell>footer{
 box-sizing:border-box;width:100%;max-width:var(--ts-host-width);margin-inline:auto;
 padding-inline:var(--ts-host-gutter)!important;
}
.ts-portal[data-mode="host"] .admin-shell>footer{max-width:var(--ts-host-width)!important}
.ts-portal[data-mode="host"] .admin-shell>.admin-header{
 box-sizing:border-box;
 padding-inline:max(var(--ts-host-gutter),calc((100% - var(--ts-host-width))/2 + var(--ts-host-gutter)));
}
@media(max-width:1150px){.ts-portal[data-mode="host"] .admin-shell{--ts-host-gutter:28px}}
@media(max-width:800px){
 .ts-portal[data-mode="host"] .admin-shell{--ts-host-gutter:20px}
 .ts-portal[data-mode="host"] .admin-shell>.admin-header{min-height:63px;height:auto;padding-block:12px;flex-wrap:wrap;gap:10px}
 .ts-portal[data-mode="host"] .admin-shell>footer{flex-wrap:wrap}
}

/* Compact host workspace; guest pages and sign-in retain their current design. */
.ts-portal[data-mode="host"]{--muted:#62716b}
.ts-portal[data-mode="host"] .brand-icon,.ts-portal[data-mode="host"] .brand-dot{display:none!important}
.ts-portal[data-mode="host"] .brand{gap:0;letter-spacing:-1.4px}
.ts-portal[data-mode="host"] .admin-shell{--ts-host-gutter:32px}
.ts-portal[data-mode="host"] .admin-header{height:64px}
.ts-portal[data-mode="host"] #admin-app{padding-block:24px}
.ts-portal[data-mode="host"] .admin-title{margin-bottom:20px;gap:16px}
.ts-portal[data-mode="host"] .admin-title h1{font-size:27px}
.ts-portal[data-mode="host"] .admin-panel{border-radius:10px;margin-bottom:18px}
.ts-portal[data-mode="host"] :is(.form-panel,.ts-web-intro){padding:20px}
.ts-portal[data-mode="host"] .form-panel h2{margin-bottom:16px;font-size:17px}
.ts-portal[data-mode="host"] .form-grid{gap:16px 20px}
.ts-portal[data-mode="host"] .form-field{gap:6px}
.ts-portal[data-mode="host"] :is(.form-field,.ts-web-intro) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){padding:9px 11px;border-radius:7px;font-size:14px;min-height:40px}
.ts-portal[data-mode="host"] .form-field textarea{min-height:84px}
.ts-portal[data-mode="host"] :is(.primary,.outline-button){font-size:14px;padding:9px 14px;min-height:40px;border-radius:7px}
.ts-portal[data-mode="host"] .footer-note{margin-top:12px;line-height:1.55}
.ts-portal[data-mode="host"] .check-field{margin-top:12px}
.ts-portal[data-mode="host"] .stat-grid{gap:12px;margin-bottom:20px}
.ts-portal[data-mode="host"] .stat-card{padding:15px 18px;border-radius:10px}
.ts-portal[data-mode="host"] .stat-card strong{font-size:27px;margin:6px 0}
.ts-portal[data-mode="host"] .panel-heading{padding:16px 18px}
.ts-portal[data-mode="host"] .manage-row{padding:13px 18px}
.ts-portal[data-mode="host"] th{padding:12px 18px}
.ts-portal[data-mode="host"] td{padding:13px 18px}
.ts-portal[data-mode="host"] .search-input{padding:9px 12px;min-height:40px}
.ts-portal[data-mode="host"] .empty-state{padding:28px 18px}
.ts-portal[data-mode="host"] :is(.ts-ai-note,.notice){padding:14px 16px;border-radius:9px}
.ts-portal[data-mode="host"] .ts-web-intro{gap:12px}
.ts-portal[data-mode="host"] .ts-web-pick{margin-bottom:8px}
.ts-portal[data-mode="host"] .ts-web-pick-grid>label{padding:12px;border-radius:8px}
.ts-portal[data-mode="host"] .ts-web-progress{padding:14px 16px;border-radius:9px;margin-top:14px}
.ts-portal[data-mode="host"] .ts-web-orbit{display:none}
.ts-portal[data-mode="host"] .ts-web-track{margin-top:12px;height:4px}
.ts-portal[data-mode="host"] .ts-web-category{margin:0;border-radius:8px}
.ts-portal[data-mode="host"] .ts-web-category-body{padding:0}
.ts-portal[data-mode="host"] .ts-web-category-body>.check-field{padding:12px 16px;margin:0;background:#f6f8f5}
.ts-portal[data-mode="host"] .ts-web-category-body>.footer-note{padding:0 16px 10px;margin:0}
.ts-portal[data-mode="host"] .ts-web-category-body .ts-web-item{display:block;padding:0;margin:0;border:0;border-top:1px solid var(--line);border-radius:0}
.ts-portal[data-mode="host"] .ts-compact-row{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:70px}
.ts-portal[data-mode="host"] .ts-compact-check{margin:0;flex:none;padding:4px}
.ts-portal[data-mode="host"] .ts-compact-copy{flex:1;min-width:0;font-size:14px}
.ts-portal[data-mode="host"] .ts-compact-copy strong{display:block;font-weight:650}
.ts-portal[data-mode="host"] .ts-compact-copy p{font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:3px}
.ts-portal[data-mode="host"] .ts-compact-fields{padding:0 16px 16px 50px;display:grid;grid-template-columns:1fr 2fr;gap:12px;background:#fafbf8}
.ts-portal[data-mode="host"] .ts-compact-fields>details,.ts-portal[data-mode="host"] .ts-compact-fields>.ts-web-existing,.ts-portal[data-mode="host"] .ts-compact-fields>.footer-note{grid-column:1/-1}
.ts-portal[data-mode="host"] .ts-compact-fields>label{min-width:0;font-size:13px}
.ts-portal[data-mode="host"] .ts-compact-fields textarea{min-height:72px;resize:vertical}
.ts-portal[data-mode="host"] .ts-compact-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}
.ts-portal[data-mode="host"] .ts-compact-tabs button{border:1px solid var(--line);background:#f5f7f4;border-radius:7px;color:var(--ink);padding:9px 14px;font-size:14px;min-height:40px}
.ts-portal[data-mode="host"] .ts-compact-tabs [aria-selected=true]{background:var(--green);color:white;border-color:var(--green)}
.ts-portal[data-mode="host"] .ts-compact-help{font-size:13px;color:#62716b}
.ts-portal[data-mode="host"] .ts-compact-help summary{cursor:pointer;padding:6px 0}
.ts-portal[data-mode="host"] .ts-web-notices,.ts-portal[data-mode="host"] .ts-web-pages{margin:0;padding:10px 14px;border-radius:8px}
@media(max-width:800px){
 .ts-portal[data-mode="host"] .admin-shell{--ts-host-gutter:20px}
 .ts-portal[data-mode="host"] :is(.form-panel,.ts-web-intro){padding:16px}
 .ts-portal[data-mode="host"] .ts-compact-fields{grid-template-columns:1fr;padding:0 14px 14px}
 .ts-portal[data-mode="host"] .ts-compact-row{padding:12px;gap:8px}
 .ts-portal[data-mode="host"] :is(.primary,.outline-button,.ts-compact-tabs button){min-height:44px}
 .ts-portal[data-mode="host"] :is(.form-field,.ts-web-intro) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;min-height:44px}
}
.ts-portal[data-mode="host"] .ts-compact-settings>summary{cursor:pointer;font-weight:600;font-size:14px;padding:2px 0}
.ts-portal[data-mode="host"] .ts-compact-settings[open]>summary{margin-bottom:16px}
.ts-portal[data-mode="host"] .ts-compact-settings>*+*{margin-top:12px}
.ts-portal[data-mode="host"] .ts-ai-panel{padding:20px;gap:14px}
.ts-portal[data-mode="host"] .ts-ai-columns{gap:20px}
.ts-portal[data-mode="host"] .ts-ai-panel :is(input:not([type=checkbox]),select,textarea){padding:9px 11px;border-radius:7px;font-size:14px;min-height:40px}
.ts-portal[data-mode="host"] .ts-billing-content :is(input:not([type=checkbox]),select){padding:9px 11px;min-height:40px}
@media(max-width:800px){.ts-portal[data-mode="host"] .ts-ai-panel{padding:16px}.ts-portal[data-mode="host"] .ts-ai-panel :is(input:not([type=checkbox]),select,textarea){font-size:16px;min-height:44px}}
/* Keep mobile inputs readable despite the more specific desktop field selectors. */
@media(max-width:800px){.ts-portal[data-mode="host"] :is(.form-field,.ts-web-intro,.ts-ai-panel) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px!important;min-height:44px!important}}
.ts-portal[data-mode="host"] :is(.form-field label,.ts-web-intro label,.ts-ai-panel label){color:#53655e}
.ts-portal[data-mode="host"] .ts-compact-fields>label:only-of-type{grid-column:1/-1}
.ts-portal[data-mode="host"] .ts-web-progress.is-complete{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:12px 14px}
.ts-portal[data-mode="host"] .ts-web-progress.is-complete .ts-web-progress-head{margin:0;gap:0}
.ts-portal[data-mode="host"] .ts-web-progress.is-complete .ts-web-progress-head p,.ts-portal[data-mode="host"] .ts-web-progress.is-complete .ts-web-track{display:none}
.ts-portal[data-mode="host"] .ts-web-progress.is-complete .ts-web-metrics{margin:0;font-size:13px}
.ts-portal[data-mode="host"] .ts-web-progress.is-complete .ts-web-technical{margin:0 0 0 auto}
.ts-portal[data-mode="host"] .ts-web-progress.is-complete .ts-web-technical[open]{flex-basis:100%}
@media(max-width:800px){.ts-portal[data-mode="host"] .ts-web-progress.is-complete .ts-web-technical{margin-left:0}}
/* Compact typed time helper; shared by property, room overrides and imports. */
.ts-portal[data-mode="host"] .ts-time-picker{margin:4px 0 10px}
.ts-portal[data-mode="host"] .ts-time-body{padding:12px;border-radius:8px;margin-top:2px}
.ts-portal[data-mode="host"] .ts-time-slots{display:flex;gap:12px;margin:0 0 8px;flex-wrap:wrap}
.ts-portal[data-mode="host"] .ts-time-slots>label{flex:0 1 132px;min-width:100px;margin:0!important;font-size:12px}
.ts-portal[data-mode="host"] .ts-time-slots input{width:100%;margin:4px 0 0!important;min-height:38px;padding:8px 10px;font-variant-numeric:tabular-nums}
.ts-portal[data-mode="host"] .ts-time-body>.footer-note{margin:0 0 10px;line-height:1.5;font-size:12px}
.ts-portal[data-mode="host"] .ts-time-actions{gap:8px}
.ts-portal[data-mode="host"] #web-saved-source .ts-ai-note>p:has(button){display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:12px 0}
.ts-portal[data-mode="host"] #web-saved-source [data-web-refresh]{margin-top:4px;margin-bottom:10px}
.ts-portal[data-mode="host"] :is(input,textarea,select):focus{outline:2px solid #85a933!important;outline-offset:2px!important;border-color:#85a933!important;box-shadow:none!important}
@media(min-width:801px){
 .ts-portal[data-mode="host"] .admin-sidebar>.brand{justify-content:center;width:100%;text-align:center}
 .ts-portal[data-mode="host"] .admin-sidebar>.workspace-tag{width:100%;margin-left:0;margin-right:0;text-align:center}
}
.ts-portal[data-mode="host"] .admin-sidebar>.portal-link{display:none!important}
/* One compact action row in place of the separate white host header. */
.ts-portal[data-mode="host"] .admin-header{display:none!important}
.ts-portal[data-mode="host"] .demo-tools{padding-top:20px;padding-bottom:4px;gap:12px;align-items:center}
.ts-portal[data-mode="host"] .demo-tools>div{gap:8px;align-items:center;justify-content:flex-end}
.ts-portal[data-mode="host"] .demo-tools a{font-size:12px;text-decoration:none;padding:8px;color:#62716b;white-space:nowrap}
.ts-portal[data-mode="host"] .demo-tools a:hover{color:#173f38;text-decoration:underline;text-underline-offset:3px}
.ts-portal[data-mode="host"] .demo-tools :is([data-publish],.ts-toolbar-preview){display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 15px;border-radius:8px;font-size:13px;font-weight:600;line-height:1.4;white-space:nowrap;text-decoration:none;transition:background .15s,box-shadow .15s}
.ts-portal[data-mode="host"] .demo-tools [data-publish]{background:#173f38;color:white;border:1px solid #173f38;box-shadow:0 2px 4px #173f3810}
.ts-portal[data-mode="host"] .demo-tools [data-publish]:hover{background:#24574d}
.ts-portal[data-mode="host"] .demo-tools .ts-toolbar-preview{background:#fff;color:#173f38;border:1px solid #bdcdc5}
.ts-portal[data-mode="host"] .demo-tools .ts-toolbar-preview:hover{background:#eef3eb;text-decoration:none}
@media(max-width:800px){.ts-portal[data-mode="host"] .demo-tools{align-items:flex-start;padding-top:16px}.ts-portal[data-mode="host"] .demo-tools>div{justify-content:flex-start;gap:8px}.ts-portal[data-mode="host"] .demo-tools :is([data-publish],.ts-toolbar-preview){min-height:44px}}
@media(prefers-reduced-motion:reduce){.ts-portal[data-mode="host"] .demo-tools :is([data-publish],.ts-toolbar-preview){transition:none}}
.ts-portal[data-mode="host"] .demo-tools .ts-toolbar-signout{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;padding:0;margin-left:4px;border:1px solid transparent;border-radius:8px;color:#62716b}
.ts-portal[data-mode="host"] .demo-tools .ts-toolbar-signout:hover{background:#eaf0e7;border-color:#d5dfd3;color:#173f38;text-decoration:none}
@media(max-width:800px){.ts-portal[data-mode="host"] .demo-tools .ts-toolbar-signout{width:44px;height:44px;flex-basis:44px}}
@media(max-width:800px){
.ts-portal[data-mode="host"] .demo-tools>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) 44px;width:100%}
.ts-portal[data-mode="host"] .demo-tools>div>a:not(.ts-toolbar-preview):not(.ts-toolbar-signout){grid-column:1/-1;justify-self:start}
.ts-portal[data-mode="host"] .demo-tools :is([data-publish],.ts-toolbar-preview){padding:9px 8px;font-size:12px}
.ts-portal[data-mode="host"] .demo-tools .ts-toolbar-preview{background:#fff!important;color:#173f38!important;border:1px solid #bdcdc5!important}
.ts-portal[data-mode="host"] .demo-tools .ts-toolbar-signout{margin-left:0}
}
/* Secondary navigation matches the compact host action buttons. */
.ts-portal[data-mode="host"] .demo-tools{padding-top:32px}
.ts-portal[data-mode="host"] .demo-tools>div>a:first-child,
.ts-portal[data-mode="host"] .demo-tools a[data-live-guide]:not([hidden]){display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 13px;border:1px solid #d8e2d8;border-radius:8px;background:#edf2e9;color:#36594f;font-size:13px;font-weight:500;line-height:1.4;text-decoration:none;transition:background .15s,border-color .15s}
.ts-portal[data-mode="host"] .demo-tools>div>a:first-child:hover,
.ts-portal[data-mode="host"] .demo-tools a[data-live-guide]:not([hidden]):hover{background:#e3ebdf;border-color:#bdcdc0;text-decoration:none;color:#173f38}
@media(max-width:800px){
.ts-portal[data-mode="host"] .demo-tools{padding-top:24px}
.ts-portal[data-mode="host"] .demo-tools>div>a:first-child{grid-column:1;justify-self:stretch}
.ts-portal[data-mode="host"] .demo-tools>div>a[data-live-guide]:not([hidden]){grid-column:2/4;justify-self:stretch}
.ts-portal[data-mode="host"] .demo-tools>div>a:first-child,
.ts-portal[data-mode="host"] .demo-tools a[data-live-guide]:not([hidden]){min-height:44px;padding:9px 8px;font-size:12px}
.ts-portal[data-mode="host"] .demo-tools [data-publish]{grid-column:1}
}
@media(prefers-reduced-motion:reduce){.ts-portal[data-mode="host"] .demo-tools a{transition:none!important}}
@media(max-width:800px){
.ts-portal[data-mode="host"] .demo-tools>div>a:first-child{grid-column:1!important;grid-row:1}
.ts-portal[data-mode="host"] .demo-tools>div>a[data-live-guide]:not([hidden]){grid-row:1}
}
/* Compact controls with focus rings that match their actual shape. */
.ts-portal[data-mode="host"] input:is([type="checkbox"],[type="radio"]){width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-height:18px!important;padding:0!important;flex:0 0 18px;align-self:center;accent-color:#173f38;border-radius:3px}
.ts-portal[data-mode="host"] input[type="radio"]{border-radius:50%}
.ts-portal[data-mode="host"] input:is([type="checkbox"],[type="radio"]):focus{outline:1px solid #638343!important;outline-offset:2px!important;box-shadow:none!important}
.ts-portal[data-mode="host"] select{min-height:40px!important;height:40px!important;padding:8px 12px!important;border-radius:7px!important;font-size:14px!important;line-height:1.4}
.ts-portal[data-mode="host"] select option{padding:8px 12px;min-height:36px}
.ts-portal[data-mode="host"] #web-input-kind{width:360px;max-width:100%}
@media(max-width:800px){
.ts-portal[data-mode="host"] select{min-height:44px!important;height:44px!important;font-size:16px!important}
.ts-portal[data-mode="host"] #web-input-kind{width:100%}
}
.ts-portal[data-mode="host"] .ts-ai-loading-space{min-height:360px}
.ts-portal[data-mode="host"] .ts-ai-loading-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* Uniform sidebar rows, including labels that wrap to two lines. */
@media(min-width:801px){
.ts-portal[data-mode="host"] .admin-sidebar #admin-nav>a{height:48px;min-height:48px;max-height:48px;padding-top:4px;padding-bottom:4px;line-height:20px;display:flex;align-items:center;box-sizing:border-box}
}

.ts-portal[data-mode="host"] .ts-host-tooltip{position:fixed;z-index:100000;max-width:min(260px,calc(100vw - 16px));padding:8px 12px;border:1px solid #31554c;border-radius:8px;background:#173f38;color:#f8f8ee;font:500 12px/1.45 "DM Sans",sans-serif;box-shadow:0 4px 14px #173f3826;white-space:normal;text-align:center;animation:ts-tip-in .12s ease-out}
.ts-portal[data-mode="host"] .ts-host-tooltip[hidden]{display:none!important}
@keyframes ts-tip-in{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.ts-portal[data-mode="host"] .ts-host-tooltip{animation:none}}
/* Light branded tooltip treatment. */
.ts-portal[data-mode="host"] .ts-host-tooltip{background:#fff;color:#173f38;border:1px solid #173f38;border-radius:8px;font:500 12px/1.45 "DM Sans",sans-serif;box-shadow:0 3px 10px #173f3812}
.ts-portal[data-mode="host"] select{padding-top:0!important;padding-bottom:0!important;display:inline-flex;align-items:center;line-height:normal!important}
.ts-portal[data-mode="host"] select::picker-icon{align-self:center;margin-block:0}
.ts-portal[data-mode="host"] select selectedcontent{display:flex;align-items:center;min-height:100%}

/* mo photo guidance mirrors the host workspace. */
.ts-portal .photo-panel #demo-photo-help{margin:18px 0 24px;padding:14px 16px;background:#f6f8f3;border-radius:10px;line-height:1.8}
.ts-portal .photo-panel .form-grid{row-gap:24px}.ts-portal .photo-panel #photo-description-help{margin-top:12px;line-height:1.7}
.ts-portal .demo-storage-note{display:block;font-size:11px;margin-top:4px}.ts-portal .demo-tools>span{flex-shrink:0}
