:root{--accent:#0080ff;--ink:#172132;--muted:#7c8491;--line:#edf0f4;font-family:Tahoma,system-ui,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.app{min-height:100dvh;margin:auto;background:white;position:relative;padding-bottom:calc(85px + env(safe-area-inset-bottom))}header{padding:32px 25px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:25px;letter-spacing:-1px;font-weight:700;color:var(--ink)}.brand span{color:var(--accent)}header p{font-size:14px;color:var(--muted);margin:10px 0 0}.icon-button{border:1px solid var(--line);background:white;color:var(--accent);width:44px;height:44px;border-radius:50%;font-size:24px}.demo{padding:12px 25px;display:flex;justify-content:space-between;align-items:center}.demo,.demo select{font-size:11px;color:var(--muted)}.demo select{border:0;background:#f5f7fa;border-radius:6px;padding:5px 9px}section{padding:24px 25px}h1,h2,p{margin:0}h1{font-size:21px}h1,h2{font-weight:600}h2{font-size:17px}p{line-height:1.8;font-size:14px}.home-actions{padding-top:12px;padding-bottom:30px}.vehicle-summary{width:100%;display:flex;align-items:center;gap:15px;background:white;border:0;padding:12px 0 25px;text-align:left;font-size:16px;color:var(--ink)}.car-symbol{font-size:37px;line-height:1}.vehicle-summary strong{margin-left:auto;color:var(--accent);font-size:25px;font-weight:600}.vehicle-summary small{font-size:14px;color:var(--muted);font-weight:400}.chevron{font-size:22px;color:#aab2bd}.primary{background:var(--accent);color:white;border:0;padding:15px 20px;border-radius:9px;min-height:52px;width:100%;font-size:16px;font-weight:500}.primary:hover{filter:brightness(.95)}.primary:disabled{background:#e9edf2;color:#8b95a3;cursor:default}.visitor-button span{font-size:22px;margin-right:8px;font-weight:300}.recent{border-top:8px solid #f6f8fb;padding-top:29px}.recent h2{margin-bottom:18px}.event{display:flex;align-items:center;padding:19px 0;font-size:13px;border-bottom:1px solid var(--line)}.dot{width:8px;height:8px;border-radius:50%;background:#23b26d;flex-shrink:0}.dot.out{background:#ec5a5a}.event time{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.event strong{font-size:15px;font-weight:500;flex:1 1}.event>span:last-child{color:var(--muted);font-size:12px}.text-button{border:0;background:none;color:var(--accent);font-size:14px;padding:23px 0 2px;display:flex;gap:14px;align-items:center;min-height:48px}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);display:flex;border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:3}nav,nav button{background:white}nav button{flex:1 1;border:0;color:#9aa3af;display:grid;justify-items:center;gap:5px;padding:4px 0;min-height:50px}nav button span{font-size:25px;line-height:1.2}nav button.active{color:var(--accent)}.page-title{display:flex;align-items:center;gap:12px;padding:17px 25px;border-bottom:1px solid var(--line)}.back{border:0;background:white;font-size:30px;color:var(--accent);min-width:30px;min-height:44px}.vehicle{padding:22px 0;border-bottom:1px solid var(--line);display:flex;gap:20px;align-items:center}.vehicle p{font-size:13px;margin-top:8px}.muted,.vehicle p{color:var(--muted)}.muted{font-size:12px;margin:16px 0}input,select{border:1px solid #dfe4ec;border-radius:8px;padding:13px;min-width:0;background:white;color:var(--ink)}input{width:100%;min-height:48px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.filters{display:flex;gap:8px}.filters input{flex:1 1}.filters select{max-width:105px;font-size:12px}form{gap:20px;margin-top:24px}form,label{display:grid}label{font-size:13px;gap:9px}form p{font-size:12px;color:var(--muted)}.empty,.empty-state{text-align:center;padding:45px 0;color:var(--muted)}.empty-state>span{font-size:42px;color:var(--accent)}.empty-state h2{color:var(--ink);margin:20px 0 10px}.contact-card small,.empty-state small{display:block;font-size:11px;color:var(--muted);margin-top:16px}.contact-card{text-align:center;padding:30px 0}.contact-icon{color:var(--accent);font-size:45px}.contact-card h2{margin:20px 0 12px}.contact-card p{color:var(--muted);font-size:13px;margin-bottom:25px}#toast{bottom:100px;left:50%;transform:translateX(-50%);background:#172132;padding:15px 20px;border-radius:10px;display:none;z-index:5;width:max-content;max-width:90vw}#install,#toast{position:fixed;color:white;font-size:12px}#install{bottom:90px;right:max(18px,calc((100vw - 440px)/2));background:var(--accent);padding:10px 15px;border:0;border-radius:20px}@media(min-width:600px){.app{margin:24px auto;min-height:calc(100dvh - 48px);border:1px solid var(--line);border-radius:20px;overflow:hidden}nav{bottom:24px;border-radius:0 0 20px 20px}}@media(max-width:360px){.page-title,header,section{padding-left:19px;padding-right:19px}.event{gap:9px}.event strong{font-size:14px}}:root{--accent:#0064ff;--ink:#0e172b;--muted:#748197;--line:#edf0f5;background:#f5f7fa}svg{width:25px;height:25px;display:block}.app{max-width:480px;background:#fff}header{align-items:flex-start;padding:30px 23px 18px;border-bottom:0}.brand{font-size:27px}.header-tools{display:flex;gap:13px;align-items:center;padding-top:2px}.icon-button{border:0;width:32px;height:32px;color:#27364c;border-radius:0;display:grid;place-items:center}.profile{color:var(--accent)}.profile svg{width:34px;height:34px}header p{margin-top:18px;font-size:16px}header .village-name{margin-top:1px;font-size:15px}.demo{padding:0 23px 12px;font-size:10px}.home-actions{padding:10px 23px 0}.vehicle-summary{border:1px solid var(--line);box-shadow:0 3px 15px #16284705;padding:19px 18px;border-radius:15px;margin-bottom:17px;gap:19px}.car-symbol{width:68px;height:68px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 9%,white);color:var(--accent)}.car-symbol svg{width:35px;height:35px}.vehicle-copy{display:grid;gap:11px;flex:1 1;font-size:16px;font-weight:600}.vehicle-summary strong{margin:0;font-size:28px;color:var(--ink)}.vehicle-summary small{font-size:19px;color:var(--ink);font-weight:500}.chevron{font-size:28px;color:#8895a8}.visitor-button{height:62px;font-size:19px;border-radius:13px;margin-bottom:0}.visitor-button span{font-size:27px}.card{padding:18px;margin:20px 23px 0;border:1px solid var(--line);box-shadow:0 2px 14px #14254605;border-radius:15px;background:white}.recent{border-top:1px solid var(--line)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}.section-heading h2{font-size:17px;white-space:nowrap}.text-button{padding:0;min-height:38px;font-size:13px;font-weight:600;gap:8px}.text-button span{font-size:24px;color:#8794a8}.event{gap:13px;padding:20px 0;align-items:flex-start}.event:last-child{border:0;padding-bottom:4px}.movement-icon{width:41px;height:41px;display:grid;place-items:center;color:#11a244;background:#dcf8e6;border-radius:50%;flex-shrink:0}.movement-icon.out{color:#ed3d31;background:#ffe5e4}.movement-icon:not(.out) svg{transform:rotate(180deg)}.movement-icon svg{width:23px;height:23px}.event-copy{flex:1 1;min-width:0}.event-copy>div{display:flex;gap:13px;align-items:center;margin:2px 0 9px}.event time{color:var(--ink)}.event strong,.event time{font-size:14px;font-weight:600}.event strong{white-space:nowrap}.event-copy>span{color:var(--muted);font-size:14px}.event>small{font-size:10px;color:var(--muted);margin-top:6px;white-space:nowrap}.latest-news{margin-bottom:25px}.news-item{display:flex;width:100%;gap:15px;text-align:left;border:1px solid var(--line);padding:15px;border-radius:15px;background:white;box-shadow:0 3px 14px #13264a04;color:var(--ink);align-items:flex-start}.news-copy{display:grid;gap:7px;flex:1 1;min-width:0}.news-copy strong{font-size:16px;line-height:1.5;font-weight:600}.news-copy small{font-size:12px;color:#94a0b1;margin-top:3px}.news-description{font-size:14px;line-height:1.6;color:var(--muted)}.news-image{width:90px;height:90px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,white)}.news-image svg{width:43px;height:43px}.news-image.activity{background:#e8f6ec;color:#28894c}.news-image.maintenance{background:#fff0dd;color:#e29237}.news-item.compact{border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:18px 0;gap:15px}.news-item.compact:last-child{border-bottom:0;padding-bottom:4px}.compact .news-image{width:52px;height:52px}.compact .news-image svg{width:29px;height:29px}.compact .news-copy strong{font-size:14px}.compact .news-description{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tag{background:color-mix(in srgb,var(--accent) 12%,white);color:var(--accent);padding:3px 9px;border-radius:6px;width:fit-content;font-size:12px}.news-heading{padding:8px 23px 18px}.news-heading h1{font-size:24px;margin-bottom:7px}.news-heading p{color:var(--muted);font-size:15px}.categories{display:flex;gap:8px;padding:0 23px 18px;overflow:auto}.categories button{border:0;background:#f3f5f8;color:#5b677c;padding:12px 15px;border-radius:28px;white-space:nowrap;font-size:13px;min-height:42px}.categories button.selected{color:white;background:var(--accent)}.news-list{display:grid;gap:10px;padding:0 23px 25px}.news-detail h1{font-size:22px;margin:18px 0}.news-detail p{margin-bottom:15px}.contact-icon{display:grid;place-items:center}.contact-icon svg{width:45px;height:45px}nav{width:min(100%,480px);padding-top:9px;background:#fffffffa}nav button{position:relative;font-size:11px;padding-bottom:9px}nav button span{display:grid;place-items:center}nav button svg{width:25px;height:25px}nav button.active:after{content:"";position:absolute;bottom:0;width:70%;height:3px;background:var(--accent);border-radius:4px}@media(max-width:370px){.card{margin-left:15px;margin-right:15px;padding:14px}.event{gap:9px}.event-copy>div{gap:8px}.event>small{font-size:9px}.news-image{width:65px;height:75px}.news-copy strong{font-size:14px}}.vehicle-type{display:block;width:fit-content;padding:4px 8px;border-radius:6px;margin-top:9px;font-size:10px!important;line-height:1.5;background:#f2f4f7;color:#637086!important}.vehicle-type.fixlist{color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 9%,white)}.vehicle-type.visitor{background:#f2f4f7;color:#536176!important}.event-copy>span.vehicle-type{white-space:normal}header .village-name{display:flex;align-items:center;gap:10px;margin-top:9px}.village-logo{width:100px;height:100px;object-fit:contain;background:white;border:1px solid var(--line);border-radius:9px}.demo{gap:12px;line-height:1.7}.demo a{color:var(--accent);text-decoration:none;white-space:nowrap}.visitor-record{padding:20px 0;border-bottom:1px solid var(--line)}.visitor-record p{color:var(--muted);font-size:13px;margin-top:7px}.delivery-entry{margin:18px 0}.home-actions #quick{margin-top:5px}body{background-color:var(--accent)}.car-info{flex:1 1;min-width:0}.car-info h2{overflow-wrap:anywhere}.vehicle .text-button{flex-shrink:0}form,form input,form label{min-width:0;max-width:100%}form input{width:100%;box-sizing:border-box}input[type=datetime-local]{display:block;min-inline-size:0;inline-size:100%;max-inline-size:100%;padding:12px 10px;font-size:16px;overflow:hidden}input[type=datetime-local]::-webkit-date-and-time-value{min-width:0;text-align:left}input[type=datetime-local]::-webkit-datetime-edit{min-width:0;padding:0}@media(max-width:370px){input[type=datetime-local]{padding:12px 8px;font-size:14px}}input,select,textarea{font-size:16px}@media(max-width:370px){input[type=datetime-local]{font-size:16px}}.demo select{font-size:16px}.filters select{font-size:16px;max-width:120px}html{text-size-adjust:100%}[contenteditable=true],[contenteditable=true]:focus,input,input:focus,select,select:focus,textarea,textarea:focus{font-size:16px!important;line-height:1.5;max-width:100%;min-width:0;touch-action:manipulation}input::-webkit-datetime-edit{font-size:16px}.car-actions{display:grid;flex-shrink:0}.delete-car{color:#d63333}.vehicle:only-of-type{border-bottom:1px solid var(--line)}.push-help{margin:20px 0;padding:18px;border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,white)}.push-help h2{font-size:16px}.push-help ol{padding-left:23px;font-size:14px;line-height:1.9}.push-help p{font-size:12px;color:var(--muted)}.header-account{display:flex;flex-direction:column;align-items:flex-end;gap:13px}.house-label{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--muted)}.house-label svg{width:20px;height:20px;color:var(--accent)}.house-label span{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.header-account .header-tools{padding-top:2px}@media(max-width:370px){.house-label{font-size:12px}}.house-label span{color:var(--accent);font-size:50px;line-height:1.1}.portrait-required{position:fixed;inset:0;z-index:9999;background:#fff;color:var(--ink);display:grid;place-items:center;text-align:center;padding:24px;opacity:0;visibility:hidden;pointer-events:none;contain:layout paint;transform:translateZ(0);transition:opacity .12s ease,visibility 0s linear .12s}html.is-landscape-mobile .portrait-required{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .12s ease}.portrait-required .landscape-splash-logo{display:block;width:200px;max-width:45vw;max-height:65dvh;height:auto;margin:0 auto;object-fit:contain}.portrait-required p{font-size:14px;margin-top:8px;color:var(--muted)}@media(prefers-reduced-motion:reduce){.portrait-required,html.is-landscape-mobile .portrait-required{transition:none}}.range-field>label{margin-bottom:9px}.range-field details{border:1px solid #dfe4ec;border-radius:10px;background:#fff;min-width:0}.range-field summary{padding:15px 12px;color:var(--accent);cursor:pointer;font-size:16px;line-height:1.6;overflow-wrap:anywhere}.range-picker{display:grid;gap:14px;padding:16px;border-top:1px solid var(--line);min-width:0}.range-separator{text-align:center;color:var(--muted);font-size:13px}.range-picker p{color:#c33;font-size:12px;margin:0}.landscape-wordmark{font-family:Arial,system-ui,sans-serif;font-size:clamp(32px,7vw,64px);font-weight:700;letter-spacing:-2px;color:var(--ink);line-height:1.2}.landscape-wordmark span{color:var(--accent)}.line-login{display:block;background:#06c755;color:white;text-align:center;text-decoration:none;border-radius:9px;padding:16px;margin-top:24px;font-size:16px}.login-accent{color:var(--accent)}.logout-form{margin-top:24px}.logout-button{width:100%;min-height:48px;background:white;color:#c33;border:1px solid #efcccc;border-radius:9px;font-size:16px}.login-logo{display:block;width:min(240px,70vw);height:auto;margin:20px auto 0}.line-login{margin-top:10px}