@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap');
:root{--ink:#0a2034;--navy:#061f3b;--blue:#0c7fa3;--gold:#c6912f;--gold-soft:#e7c97f;--sea:#0c7fa3;--cyan:#0c7fa3;--bg:#f6f1e8;--cream:#f6f1e8;--sand:#efe7d8;--line:#e3d9c6;--muted:#5d6b78;--navFont:'Cormorant Garamond',Georgia,'Times New Roman',serif}
*{box-sizing:border-box}body{margin:0;font-family:'Hanken Grotesk',system-ui,Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,'Times New Roman',serif;font-weight:500;letter-spacing:-.2px}
button,.btn{border:0;border-radius:999px;padding:13px 22px;font-weight:700;cursor:pointer;margin:3px;display:inline-block;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}button:hover,.btn:hover{transform:translateY(-2px)}.gold{background:linear-gradient(135deg,var(--gold),var(--gold-soft));color:var(--navy);box-shadow:0 14px 30px -16px rgba(198,145,47,.7)}.white{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1px var(--line)}.primary{background:var(--sea);color:#fff;box-shadow:0 14px 30px -16px rgba(12,127,163,.6)}.dark{background:var(--navy);color:#fff;box-shadow:0 14px 30px -16px rgba(6,31,59,.7)}
.navbar{min-height:110px;display:flex;align-items:center;justify-content:space-between;padding:16px 44px;background:#fff;box-shadow:0 1px 0 var(--line),0 10px 30px -22px rgba(6,31,59,.4)}.logoArea img{width:190px;max-width:34vw;display:block}.navLinks{display:flex;gap:30px;align-items:center;font-family:var(--navFont);font-weight:600;font-size:18px;letter-spacing:1.2px}.navLinks a{color:var(--navy);position:relative;padding-bottom:3px;transition:color .2s ease}.navLinks a:hover{color:var(--sea)}.navLinks a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--gold);transition:width .25s ease}.navLinks a:hover:after{width:100%}.loginButtons{display:flex;gap:10px;flex-wrap:wrap}
.heroWrap{background:linear-gradient(90deg,#fff 0%,var(--cream) 45%,var(--sand) 100%);overflow:hidden}.heroGrid{min-height:530px;display:grid;grid-template-columns:48% 52%;align-items:center;padding:10px 0 0 44px}.heroText h1{font-family:'Fraunces',Georgia,'Times New Roman',serif;font-size:clamp(48px,6.2vw,78px);line-height:.98;margin:0 0 18px;color:var(--navy);letter-spacing:-.5px}.heroText h1 span{color:var(--sea);font-style:italic}.heroText p{font-size:22px;line-height:1.4;color:var(--muted);margin:0 0 26px;max-width:560px}.heroButtons{display:grid;grid-template-columns:repeat(2,minmax(210px,260px));gap:14px 18px}.heroBtn{display:flex;align-items:center;gap:14px;border-radius:16px;padding:15px 18px;color:#fff;box-shadow:0 20px 44px -22px rgba(6,31,59,.55);cursor:pointer}.heroBtn b{display:block;font-size:16px}.heroBtn small{font-weight:400;font-size:14px}.heroBtn .icon{font-size:28px;width:42px;text-align:center}.b1{background:linear-gradient(135deg,#0c7fa3,#0a5575)}.b2{background:linear-gradient(135deg,#082345,#061b36)}.b3{background:linear-gradient(135deg,#c6912f,#a9761f)}.b4{background:linear-gradient(135deg,#0c3a63,#08294c)}.heroImage{height:530px;background:linear-gradient(90deg,rgba(246,241,232,.92) 0%,rgba(246,241,232,.45) 20%,rgba(246,241,232,0) 43%),url('assets/hero.jpeg') center right/cover no-repeat;border-bottom-left-radius:45px}
.solution,.main{max-width:1180px;margin:0 auto;padding:34px 24px}.sectionTitle{display:flex;align-items:center;gap:24px;justify-content:center;margin:4px 0 24px;color:var(--navy);font-weight:600;letter-spacing:1px}.sectionTitle:before,.sectionTitle:after{content:"";height:1px;background:var(--line);flex:1}.solutionCards,.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.solutionCard,.card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 26px 50px -34px rgba(6,31,59,.4);padding:24px 20px}.solutionCard{text-align:center;min-height:210px}.circleIcon{width:62px;height:62px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;color:#fff;font-size:27px;background:linear-gradient(135deg,#0c7fa3,#082b58)}.solutionCard h3,.card h2,.card h3{color:var(--navy);margin-top:0}
.homeFooter{background:linear-gradient(90deg,var(--navy),#08345e);color:#fff;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:20px 44px;text-align:center}.homeFooter b{display:block}.homeCopyright{background:var(--navy);color:#fff;text-align:center;padding:12px}
input,select,textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;margin:5px 0 12px;background:#fff;font-family:inherit;font-size:15px;color:var(--ink)}textarea{min-height:90px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sea);box-shadow:0 0 0 3px rgba(12,127,163,.13)}label{font-weight:700;display:block;color:#2c3e4f}.notice{background:#fbf4e3;border-left:5px solid var(--gold);padding:12px;border-radius:12px;margin:10px 0}.good{background:#eafff2;border-left-color:#27a85a}.bad{background:#fff0f0;border-left-color:#d33}
.instructionList{margin:14px 0 0;padding-left:20px;color:#2c3e4f;line-height:1.5}.instructionList li{margin:0 0 10px;padding-left:4px}
.navToggle{display:none;background:rgba(255,255,255,.16);color:#fff;border:0;border-radius:10px;font-size:22px;line-height:1;padding:8px 13px;margin:0;cursor:pointer}.topLeft{display:flex;align-items:center;gap:12px;min-width:0}.navBackdrop{display:none}
.adminShell{display:grid;grid-template-columns:270px 1fr;min-height:calc(100vh - 110px);background:var(--cream)}.side{background:#fff;border-right:1px solid var(--line);padding:16px 10px}.sideLogo{text-align:center;padding:6px 8px 18px;border-bottom:1px solid var(--line);margin-bottom:12px}.sideLogo img{width:160px;max-width:100%}.navItem{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:10px;font-weight:600;cursor:pointer;color:var(--ink)}.navItem:hover{background:var(--sea);color:#fff}.navTitle{font-size:11px;font-weight:800;color:var(--muted);margin:20px 14px 8px;letter-spacing:.5px}.top{height:74px;background:linear-gradient(90deg,var(--navy),#0c3a63);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 28px}.top h2{margin:0 0 2px;font-size:21px;line-height:1.1;color:#fff}.top small{display:block;line-height:1.2;opacity:.85}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin:20px 0}.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 22px 44px -34px rgba(6,31,59,.4);line-height:1.35}.kpi b{display:block;margin-top:8px;font-size:30px;line-height:1.1;color:var(--navy);font-family:'Hanken Grotesk',system-ui,Arial,Helvetica,sans-serif;font-weight:800;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;writing-mode:horizontal-tb;text-orientation:mixed;transform:none}.kpi .small{display:block;margin-top:8px}.panelGrid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border-bottom:1px solid var(--line);padding:12px 8px}.row span{min-width:0}.row b{flex:0 0 auto;text-align:right}table{width:100%;border-collapse:collapse;background:#fff}th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left}th{background:var(--sand);color:var(--navy);font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:700}
.passLimitCell{min-width:190px}.passLimitControl{margin:0;min-width:0}.passLimitActions{display:flex;align-items:center;gap:8px}.passLimitActions input{width:78px;min-width:78px;margin:5px 0}.passLimitActions .btn{margin:0;white-space:nowrap}.ownerCell{min-width:120px;overflow-wrap:anywhere}
.pass{width:4in;height:6in;border:2px solid var(--navy);background:#fff;margin:20px auto;padding:.25in;text-align:center;display:flex;flex-direction:column;justify-content:space-between}.pass img{max-width:3.4in;max-height:1.25in}.passInfo{text-align:left;font-size:15px}.passInfo div{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border-bottom:1px solid var(--line);padding:9px 2px}.passInfo b{color:var(--navy);flex:0 0 auto}.passInfo span{text-align:right;min-width:0;overflow-wrap:anywhere}.qr{font-size:118px}.small{font-size:12px;color:var(--muted)}footer{background:var(--ink);color:#cdd9e3;text-align:center;padding:25px}footer a{color:var(--gold-soft);margin:0 8px;cursor:pointer}
@media(max-width:1100px){.navbar{min-height:0;flex-wrap:wrap;justify-content:center;gap:10px 14px;padding:14px 22px}.logoArea{margin-right:auto}.navLinks{order:3;flex-basis:100%;justify-content:center;flex-wrap:wrap;gap:12px 22px;font-size:17px}.heroGrid{grid-template-columns:1fr;padding:20px}.heroImage{display:none}.heroButtons{grid-template-columns:1fr}.homeFooter{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.navbar{padding:12px 16px}.navLinks{gap:10px 16px;font-size:15px;letter-spacing:.6px}.logoArea{margin-right:0}.loginButtons{order:2}.homeFooter{grid-template-columns:1fr}.heroText h1{font-size:44px}
.adminShell{grid-template-columns:1fr;position:relative}.navToggle{display:inline-flex}
.side{position:fixed;top:0;left:0;bottom:0;width:266px;max-width:84vw;z-index:60;overflow-y:auto;transform:translateX(-100%);transition:transform .25s ease;box-shadow:0 12px 44px rgba(6,31,59,.3)}
.adminShell.navOpen .side{transform:translateX(0)}
.navBackdrop{display:none;position:fixed;inset:0;background:rgba(6,31,59,.45);z-index:55}.adminShell.navOpen .navBackdrop{display:block}
.top{height:auto;min-height:64px;flex-wrap:wrap;gap:8px;padding:10px 16px}.top h2{font-size:18px;margin:4px 0}.top small{font-size:12px}
.main{padding:22px 14px}.main table{display:block;overflow-x:auto;white-space:nowrap}.unitTable td{vertical-align:top}.unitTable .passLimitCell,.unitTable .ownerCell{white-space:normal}.passLimitCell{min-width:150px}.passLimitControl{padding:10px}.passLimitActions{align-items:stretch;flex-direction:column;gap:6px}.passLimitActions input{width:100%;min-width:0;margin:4px 0 0}.passLimitActions .btn{width:100%;padding:11px 14px}.panelGrid{grid-template-columns:1fr}}
@media print{body *{visibility:hidden}#printPass,#printPass *{visibility:visible}#printPass{position:absolute;left:0;top:0;margin:0}@page{size:4in 6in;margin:0}}


.serviceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:20px 0}
.serviceCard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;text-align:center;box-shadow:0 26px 50px -34px rgba(6,31,59,.4)}
.serviceCard .bigIcon{font-size:42px;margin-bottom:10px}
.serviceCard a{display:inline-block;margin-top:10px}
.guestHero{position:relative;background:linear-gradient(160deg,#08294c,#0c7fa3);color:#fff;border-radius:22px;padding:36px 38px;margin-bottom:22px;overflow:hidden}
.guestHero:before{content:"";position:absolute;right:-70px;top:-70px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(231,201,127,.28),transparent 70%);pointer-events:none}
.guestHero h1{margin-top:0;color:#fff}
.guestHero p{color:#dceef6;position:relative}

/* Password fields with a show/hide toggle (portal access passwords + login) */
.pwField{position:relative;display:block}
.pwField input{padding-right:50px}
.pwToggle{position:absolute;right:6px;top:5px;width:42px;height:42px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;color:var(--muted);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.pwToggle:hover{transform:none;color:var(--sea)}
.pwModalBackdrop{position:fixed;inset:0;background:rgba(6,31,59,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}
.pwModal{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 60px -30px rgba(6,31,59,.6);padding:26px 24px;max-width:380px;width:100%}
.pwModal h2{margin-top:0;color:var(--navy)}
.pwModal p{color:var(--muted);margin:0 0 14px}
.pwModalBtns{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
/* Protected pages hide every direct child of <body> until authorized; let the login box through */
body:not(.authorized) > .pwModalBackdrop{display:flex!important}
