@font-face{font-family:Portal;src:local('Arial')}*{box-sizing:border-box}body{margin:0;background:#f7f6f3;color:#17232d;font:14px Portal,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.48;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #699cbe;outline-offset:4px}input:focus,select:focus{outline:2px solid #789db7;outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2{font-weight:400}h1{font-size:44px;letter-spacing:-1.7px;line-height:1.12}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;color:#738998}h2{font-size:27px;letter-spacing:-.7px}h3{font-size:15px;font-weight:600}p{line-height:1.7}small,.muted{color:#6b7881}.eyebrow{font-size:10px;letter-spacing:2.1px;text-transform:uppercase;font-weight:600;color:#879dab;margin-bottom:18px}.btn{border:1px solid #1b2c38;background:#1b2c38;color:#fff;border-radius:5px;padding:13px 19px;display:inline-flex;gap:13px;align-items:center;justify-content:center;font-weight:600;font-size:12px;min-height:42px;line-height:1.3}.btn:hover{background:#304657}.btn.light{background:transparent;color:#263b49;border-color:#c9cfd1}.btn.light:hover{background:#e8ebea}.btn.danger{background:#fff5f2;border-color:#e6c6bd;color:#99462f}.btn.small{padding:9px 13px;min-height:36px;font-size:11px}.text-btn{background:none;border:0;padding:8px 0;color:#57768b;font-size:12px}.text-btn:hover{text-decoration:underline}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex:none}.login-header{height:100px;padding:12px 6vw;background:#0e1b25;display:flex;align-items:center;justify-content:space-between;color:#d6dfe5;border-bottom:1px solid #ffffff16}.login-header img{width:76px;height:76px;object-fit:contain}.login-header a:last-child{font-size:12px}.login-layout{display:grid;grid-template-columns:1.06fr 1fr;min-height:calc(100vh - 100px)}.login-story{background:#0e1b25;position:relative;padding:68px 6vw 44px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;color:#fff}.login-story:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0e1b25b5,#0e1b25 90%),url('/detail-gated-estate.jpg') center/cover;opacity:.52}.login-story>*{position:relative}.login-story h1{font-size:clamp(44px,4.6vw,70px);line-height:1.03;max-width:520px;margin:24px 0;letter-spacing:-2.4px}.login-story h1 em{color:#9bb6c8}.login-story .intro{color:#b0c1ce;max-width:370px;font-size:15px}.story-foot{border-top:1px solid #ffffff25;padding-top:24px;margin-top:80px;display:flex;align-items:center;gap:16px;color:#99afbf;font-size:10px;letter-spacing:1.8px}.story-foot img{width:37px;opacity:.7}.login-panel{display:flex;align-items:center;justify-content:center;padding:56px 7vw}.login-card{width:100%;max-width:390px}.login-card .location{display:flex;gap:10px;align-items:center;color:#6e8190;font-size:11px;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:34px}.login-card h2{font-size:34px;margin-bottom:13px}.login-card>p{color:#7a848b;line-height:1.8;font-size:13px;margin-bottom:30px}.login-card .btn{width:100%;margin-top:8px;padding:16px}.login-card .help{font-size:11px;border-top:1px solid #dce0de;padding-top:24px;margin-top:28px;color:#7e8990}.login-card .help a{text-decoration:underline;text-underline-offset:3px}.login-footer{margin-top:35px;font-size:10px;display:flex;justify-content:space-between;color:#879096}.field{margin-bottom:19px;display:flex;flex-direction:column;gap:9px}.field label{font-size:11px;font-weight:600;color:#465865}.field input,.field select,.search{width:100%;background:#fff;border:1px solid #d4d9db;padding:13px;border-radius:4px;color:#1b2c38;min-height:44px}.field input::placeholder{color:#a0aaaf}.field small{font-size:11px;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-head{display:flex;justify-content:space-between;align-items:center}.field-head button{font-size:11px;padding:0}.form-error{background:#f8eae6;color:#954b36;border-left:3px solid #bc7660;padding:12px 14px;font-size:12px;margin:15px 0;line-height:1.6}.form-success{background:#e8f0e9;color:#3f6954;padding:14px;font-size:12px;line-height:1.7;margin-bottom:22px}.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #d2ded5;color:#54705e;background:#edf3ed;padding:6px 9px;border-radius:4px;font-size:10px;line-height:1;white-space:nowrap;font-weight:500}.badge:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.badge.pending{background:#f8f0de;border-color:#eadbb8;color:#93763e}.badge.error{background:#f7e7e2;border-color:#e8c4b9;color:#a2553c}.badge.neutral{background:#eef1f3;border-color:#d7dfe3;color:#758b99}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;background:#12212d;color:#d0dbe2;padding:27px 23px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:13px;border-bottom:1px solid #ffffff1c;padding-bottom:23px}.brand img{height:66px;width:66px;object-fit:contain}.brand span{font-size:10px;letter-spacing:1.9px;line-height:1.8;color:#9badb8}.side-location{padding:29px 7px}.side-location small{font-size:9px;letter-spacing:1.5px;color:#7f97a8}.side-location h3{margin:12px 0;font-size:14px;line-height:1.5;font-weight:400}.side-location .badge{background:#d0b47713;border-color:#d0b47733;color:#cfbb92}.side-nav{display:grid;gap:7px}.side-nav button{background:none;border:0;color:#91a6b4;text-align:left;border-radius:5px;padding:14px 13px;font-size:12px;display:flex;align-items:center;gap:12px}.side-nav button.active,.side-nav button:hover{background:#243744;color:#eef5f9}.side-bottom{margin-top:auto;padding:25px 8px 0}.side-bottom p{font-size:10px;color:#6f8a9c;line-height:1.7;margin:12px 0 20px}.side-bottom a{font-size:11px;color:#aec0cb}.side-bottom button{color:#9db0bd;font-size:11px;margin-top:17px}.main{grid-column:2;min-width:0}.topbar{height:77px;padding:0 44px;border-bottom:1px solid #e1e4e2;display:flex;align-items:center;justify-content:space-between;background:#ffffff66;font-size:10px;letter-spacing:1.1px;color:#768691}.topbar .account{display:flex;align-items:center;gap:10px;letter-spacing:0;color:#5a6c78;font-size:11px}.avatar{background:#dfe7eb;color:#527084;border:1px solid #cedbe2;width:31px;height:31px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.content{padding:42px 44px 30px;max-width:1450px;margin:auto}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px}.heading .eyebrow{margin-bottom:13px;font-size:9px;color:#8b9ba5}.heading p{margin-top:12px;color:#7a878f;font-size:12px}.heading h1{font-size:39px}.info-bar{display:flex;align-items:center;gap:10px;background:#edece7;border:1px solid #dfdfd7;border-radius:5px;padding:13px 17px;color:#737c7c;font-size:11px;line-height:1.7;margin-bottom:24px}.info-bar.test{background:#f2eee3;border-color:#e9dfc8;color:#8a7850}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #dfe3df;background:#fff;border-radius:6px;margin-bottom:32px}.stat{padding:21px 25px;border-right:1px solid #e5e8e5;display:flex;align-items:center;gap:17px}.stat:last-child{border:0}.stat .stat-icon{background:#eff3f4;border-radius:6px;padding:12px;color:#6d889b;display:flex}.stat strong{font-size:23px;display:block;font-weight:400;margin-bottom:6px}.stat small{font-size:10px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:25px 0 18px;gap:16px}.section-head h2{font-size:21px}.section-head small{font-size:10px;color:#8a959c}.vehicle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.vehicle{background:#fff;border:1px solid #dce1de;border-radius:7px;overflow:hidden;position:relative}.vehicle-top{display:flex;justify-content:space-between;padding:22px 23px 17px;gap:10px}.vehicle-top h3{font-size:14px;margin-bottom:7px;line-height:1.4}.vehicle-top p{font-size:10px;color:#8a959a}.plate-wrap{background:#f2f4f3;margin:0 23px 19px;padding:18px;display:flex;justify-content:center;border:1px solid #e6eae7;border-radius:5px}.plate{background:#fff;border:1px solid #c9d1d3;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px #dce2e2,0 2px 2px #00000004;border-radius:6px;min-width:175px;max-width:100%;padding:9px 19px 12px;text-align:center;position:relative}.plate:before,.plate:after{content:'';width:3px;height:3px;background:#c1cbd1;border-radius:50%;position:absolute;top:11px}.plate:before{left:11px}.plate:after{right:11px}.plate small{display:block;font-size:7px;letter-spacing:2px;color:#97a3a9;margin-bottom:6px}.plate strong{font:500 25px 'Courier New',monospace;letter-spacing:3px;color:#2b3e4c}.vehicle-bottom{padding:13px 23px;border-top:1px solid #edf0ed;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#96a2a9}.vehicle-bottom .actions{display:flex;gap:16px}.vehicle-bottom button{font-size:10px;display:flex;align-items:center;gap:5px}.vehicle-bottom .icon{width:13px;height:13px}.vehicle-error{font-size:10px;background:#fdf2ed;padding:10px 23px;color:#a1664b}.empty{border:1px dashed #cbd4d5;border-radius:6px;padding:42px 24px;text-align:center;background:#ffffff66;color:#7d919f}.empty .icon{width:30px;height:30px;margin-bottom:17px}.empty h3{font-size:16px;color:#3c5261;margin-bottom:9px;font-weight:400}.empty p{font-size:12px;margin-bottom:20px;max-width:460px;margin-left:auto;margin-right:auto}.help-card{border-top:1px solid #dfe4e1;margin-top:32px;padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:15px;color:#7d8e97;font-size:11px}.help-card p{max-width:530px;font-size:11px}.help-card h3{font-size:12px;margin-bottom:7px;color:#536875}.page-footer{display:flex;justify-content:space-between;margin-top:38px;color:#9aa5aa;font-size:8px;letter-spacing:1.1px}.panel{background:#fff;border:1px solid #dce2df;border-radius:6px;padding:25px;margin-bottom:20px}.panel h3{margin-bottom:12px}.panel p{font-size:12px;color:#768892}.panel .btn{margin-top:16px}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.toolbar .search{max-width:310px;font-size:12px}.toolbar select{padding:12px;background:white;border:1px solid #d4dadd;border-radius:4px;max-width:260px}.toolbar .spacer{flex:1}.family-card{background:#fff;border:1px solid #dce1df;border-radius:6px;margin-bottom:14px}.family-card summary{cursor:pointer;padding:21px 22px;display:flex;align-items:center;gap:14px;list-style:none}.family-card summary::-webkit-details-marker{display:none}.family-card summary .family-icon{padding:12px;background:#eef2f3;border-radius:5px;color:#68879b}.family-card summary .family-title{flex:1}.family-title h3{font-size:13px;margin-bottom:6px}.family-title p{font-size:11px;color:#8b979e}.family-card summary .meta{font-size:10px;color:#87969f}.family-content{padding:4px 22px 22px;border-top:1px solid #edf0ed}.family-content .section-head h3{font-size:12px}.family-actions{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0 25px}.resident-row{padding:15px 0;border-top:1px solid #e8edeb;display:flex;gap:12px;align-items:center;justify-content:space-between}.resident-row p{font-size:11px;color:#83939c}.resident-row h4{font-size:12px;font-weight:500;margin:0 0 5px}.resident-row .row-actions{display:flex;gap:10px;flex-wrap:wrap}.resident-row .text-btn{font-size:10px}.log{width:100%;border-collapse:collapse;font-size:11px}.log td,.log th{text-align:left;border-bottom:1px solid #e9edeb;padding:14px 9px}.log th{font-weight:500;color:#82939e;font-size:9px;text-transform:uppercase;letter-spacing:1px}.log td{color:#5a6f7d}.log td:first-child{color:#84939c;white-space:nowrap}.overflow{overflow-x:auto}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.settings-grid>*{min-width:0}.step>div{min-width:0}.panel .section-head{flex-wrap:wrap}.field input,.field select{min-width:0}.steps{counter-reset:steps;display:grid;gap:18px;margin-top:22px}.step{display:flex;gap:12px;color:#788b97;font-size:11px;line-height:1.7}.step:before{counter-increment:steps;content:counter(steps);min-width:24px;height:24px;background:#eaf0f2;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#587b92}.step strong{display:block;color:#456071;font-size:12px;margin-bottom:3px}.loading{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;color:#87959d;font-size:12px}.loading img{width:100px;height:100px;object-fit:contain}dialog{width:calc(100% - 36px);max-width:510px;border:1px solid #d0d9dd;border-radius:9px;padding:30px;color:#203746;background:#f9faf8;max-height:90vh;overflow:auto;box-shadow:0 25px 120px #07131c50}dialog::backdrop{background:#0b1a26aa;backdrop-filter:blur(4px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.modal-head h2{font-size:25px}.close{border:0;background:none;font-size:26px;color:#8a9ca7;padding:0 4px;line-height:1}.modal-copy{font-size:12px;color:#7a8b97;margin-bottom:25px;line-height:1.8}.modal-actions{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid #dfe5e2;padding-top:22px;margin-top:23px}.secret{font:12px monospace;overflow-wrap:anywhere;background:#eaf0f2;padding:16px;border:1px solid #cedce2;border-radius:4px;user-select:all;line-height:1.8}.notice{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);max-width:min(580px,90vw);border:1px solid #c5d5d0;background:#fff;color:#3d6254;padding:17px 23px;font-size:12px;border-radius:6px;box-shadow:0 8px 50px #0e202c30;z-index:100;line-height:1.6}.notice.error{color:#8d4d39;border-color:#ddbeae}.check-list{display:grid;gap:15px;margin-top:20px}.check-item{display:flex;gap:12px;align-items:flex-start;font-size:12px;color:#6f8390;line-height:1.7}.check-item .icon{color:#719083}.mobile-brand{display:none}.welcome-choice{border:1px solid #dbe1df;border-radius:5px;padding:20px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;background:#fff}.welcome-choice strong{font-size:13px;font-weight:500}.welcome-choice small{display:block;font-size:10px;margin-top:8px}.welcome-choice:hover{border-color:#89a4b6}.inline-code{font:11px monospace;background:#edf1f2;padding:5px 8px;border-radius:3px;overflow-wrap:anywhere}.note{font-size:11px;color:#8d7856;background:#f5f0e4;padding:14px;line-height:1.8;border-radius:4px;margin:16px 0}.table-actions{display:flex;gap:8px}
@media(min-width:1450px){.content{padding-top:54px}.vehicle-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.heading h1{font-size:45px}}
@media(max-width:1100px){.shell{grid-template-columns:200px 1fr}.sidebar{width:200px;padding:22px 15px}.content{padding:32px 28px}.topbar{padding:0 28px}.stat{padding:19px 16px;gap:12px}.stat .stat-icon{display:none}.heading h1{font-size:35px}.settings-grid{grid-template-columns:1fr}.brand img{width:55px;height:55px}.brand span{font-size:8px}}
@media(max-width:760px){.login-header{height:80px;padding:10px 6vw}.login-header img{height:60px;width:60px}.login-layout{grid-template-columns:1fr;min-height:0}.login-story{padding:26px 7vw 25px}.login-story h1{font-size:33px;max-width:400px;margin:13px 0;letter-spacing:-1.2px}.login-story .intro{font-size:13px;max-width:420px}.login-story .eyebrow{font-size:8px;margin:0}.story-foot{display:none}.login-panel{padding:37px 7vw}.login-card{max-width:460px}.login-card .location{margin-bottom:20px}.login-card h2{font-size:28px}.shell{display:block}.sidebar{position:static;width:auto;padding:12px 20px;display:block}.brand{border:0;padding:0;gap:12px}.brand img{width:47px;height:47px}.brand span{font-size:8px}.side-location{position:absolute;right:20px;top:22px;padding:0;text-align:right}.side-location small,.side-location .badge{display:none}.side-location h3{font-size:11px;margin:0}.side-nav{display:flex;margin-top:12px;border-top:1px solid #ffffff15;padding-top:10px;overflow:auto;gap:5px}.side-nav button{font-size:10px;padding:10px 12px;white-space:nowrap;gap:7px}.side-nav .icon{width:14px;height:14px}.side-bottom{display:none}.topbar{height:55px;padding:0 21px;font-size:8px}.topbar .account{font-size:10px}.content{padding:27px 21px}.heading{align-items:flex-start;margin-bottom:23px;gap:15px}.heading h1{font-size:31px;letter-spacing:-1.3px}.heading p{font-size:11px}.heading>.btn{font-size:10px;padding:11px 13px;min-width:105px;margin-top:24px;gap:6px}.heading>.btn .icon{width:13px}.heading .eyebrow{font-size:8px}.stats{margin-bottom:25px}.stat{padding:16px 11px}.stat strong{font-size:22px}.stat small{font-size:8px;line-height:1.4;display:block}.info-bar{font-size:10px;padding:12px}.vehicle-grid{grid-template-columns:1fr}.section-head h2{font-size:20px}.section-head small{font-size:9px}.help-card{align-items:flex-start}.help-card .btn{font-size:10px;min-width:100px}.page-footer{font-size:7px;gap:20px;line-height:1.6}.family-card summary{padding:17px 14px;gap:11px}.family-card summary .meta{display:none}.family-content{padding:4px 14px 17px}.resident-row{align-items:flex-start;flex-direction:column}.family-actions .btn{font-size:10px;padding:9px}.toolbar .search{max-width:none}.toolbar select{max-width:none;width:100%}.toolbar .spacer{display:none}.settings-grid{gap:0}.panel{padding:21px}.field-row{gap:12px}dialog{padding:24px}.log td,.log th{padding:13px 6px}.logout-mobile{display:block}}

/* Site connection review */
.connection-details{margin:20px 0;line-height:1.7}.connection-details dt{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#657d8e;margin-top:14px}.connection-details dd{margin:4px 0 0;color:#263b49;overflow-wrap:anywhere}.connection-details .fingerprint{font-family:monospace;font-size:11px;line-height:1.8}.connection-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.setup-code{display:block;resize:vertical;width:100%;min-height:130px;border:1px solid #cdd7db;border-radius:4px;padding:14px;font:12px/1.7 monospace;background:#f3f6f6;color:#263b49;overflow-wrap:anywhere;margin:12px 0 20px}

.connection-guide{margin:18px 0;padding:14px;background:#f4f4f0;border-radius:8px}.connection-guide summary{cursor:pointer;font-weight:600}.steps .btn{display:flex;width:max-content;max-width:100%;margin-top:12px}.confirm-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5}.confirm-check input{width:auto;margin-top:5px}.panel code{overflow-wrap:anywhere}.fingerprint{overflow-wrap:anywhere;word-break:break-word}

.connection-actions{align-items:center;gap:12px}.panel>button[data-action="disconnect-connection"]{display:block;margin-top:12px}
