@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#173b3f;font-synthesis:none;--brand:#0d5b61;--brand-dark:#083f44;--mint:#dcefea;--green:#25986a;--red:#d7565c;--gray:#879397;--line:#dfe8e6;background:#f5f8f7;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;align-items:center;gap:42px;height:76px;padding:0 max(24px,50vw - 610px);display:flex;position:sticky;top:0}.logo{letter-spacing:-1.5px;min-width:210px;color:var(--brand-dark);grid-template-rows:26px 13px;grid-template-columns:38px auto;align-items:center;font-family:Manrope;font-size:24px;font-weight:800;display:grid}.logo>span:nth-child(2) span{color:#48a989}.logo-mark{background:var(--brand);color:#fff;border-radius:10px 10px 10px 3px;grid-row:1/3;place-items:center;width:34px;height:34px;display:grid;transform:rotate(-3deg)}.logo small{text-transform:uppercase;letter-spacing:1.4px;color:#87a09f;font-family:DM Sans;font-size:8px;font-weight:700}nav{align-self:stretch;gap:4px;display:flex}nav button{color:#6d8182;background:0 0;border:0;align-items:center;gap:7px;padding:0 15px;font-weight:600;display:flex;position:relative}nav button:hover,nav button.active{color:var(--brand)}nav button.active:after{content:"";background:var(--brand);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:15px;right:15px}.account{border:0;border-left:1px solid var(--line);color:#647879;text-align:left;background:0 0;align-items:center;gap:10px;margin-left:auto;padding:0 0 0 22px;display:flex}.account>span{background:var(--mint);width:36px;height:36px;color:var(--brand);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.account div{display:grid}.account strong{color:#29494c;font-size:13px}.account small{font-size:11px}.mobile-menu{color:var(--brand);background:0 0;border:0;display:none}main{flex:1;width:min(1220px,100% - 48px);margin:0 auto;padding:48px 0 64px}.page-heading{justify-content:space-between;align-items:end;margin-bottom:36px;display:flex}.eyebrow{color:#3e9a7f;letter-spacing:1.6px;font-size:11px;font-weight:800}h1{color:#153d41;letter-spacing:-1.8px;margin:9px 0 10px;font-family:Manrope;font-size:clamp(30px,4vw,43px);line-height:1.1}.page-heading p{color:#718385;margin:0;font-size:15px}.date-chip{border:1px solid var(--line);color:var(--brand);background:#fff;border-radius:12px;align-items:center;gap:11px;padding:11px 16px;display:flex;box-shadow:0 5px 20px #123b4010}.date-chip div{display:grid}.date-chip small{text-transform:uppercase;color:#809092;font-size:10px;font-weight:700}.date-chip strong{color:#2c5053;font-size:13px}.status-overview{border:1px solid var(--line);background:#fff;border-radius:15px;align-items:center;gap:4px;margin-bottom:25px;padding:12px;display:flex;box-shadow:0 8px 30px #254e5110}.status-overview>button{color:#6f8182;background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;padding:9px 14px;display:flex}.status-overview>button.selected{color:#244d50;background:#f0f6f4}.status-overview strong{color:#25494c}.dot{border-radius:50%;width:9px;height:9px;display:inline-block}.dot.available{background:var(--green)}.dot.occupied{background:var(--red)}.dot.inactive{background:var(--gray)}.search{border:1px solid var(--line);color:#8a9a9b;background:#fbfdfc;border-radius:10px;align-items:center;gap:9px;height:42px;padding:0 12px;display:flex}.status-overview .search{width:270px;margin-left:auto}.search input{color:#26494c;background:0 0;border:0;outline:0;width:100%}.room-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.room-card{border:1px solid var(--line);border-top:4px solid var(--green);background:#fff;border-radius:16px;flex-direction:column;min-height:288px;padding:22px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 8px 24px #21474a0d}.room-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px #21474a18}.room-card.occupied{border-top-color:var(--red)}.room-card.inactive{border-top-color:var(--gray);opacity:.72}.card-top{justify-content:space-between;align-items:center;display:flex}.room-icon{width:43px;height:43px;color:var(--brand);background:#e5f3ef;border-radius:11px;place-items:center;display:grid}.occupied .room-icon{color:#b84a50;background:#fae9e9}.inactive .room-icon{color:#69797c;background:#edf0f0}.status-pill{color:#27835f;background:#e9f6f0;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:700;display:flex}.status-pill i{background:var(--green);border-radius:50%;width:6px;height:6px}.occupied .status-pill{color:#b9484e;background:#fbecee}.occupied .status-pill i{background:var(--red)}.inactive .status-pill{color:#6c797b;background:#eef1f1}.inactive .status-pill i{background:var(--gray)}.room-card h2{color:#20474a;margin:20px 0 3px;font-family:Manrope;font-size:18px}.subtitle{color:#829092;margin:0 0 17px;font-size:12px}.room-meta{color:#6f8183;border-top:1px solid #edf1f0;gap:16px;padding-top:14px;font-size:11px;display:flex}.room-meta span{align-items:center;gap:5px;display:flex}.reserve-button{background:var(--brand);color:#fff;text-align:left;border:0;border-radius:9px;justify-content:space-between;margin-top:auto;padding:11px 13px;font-weight:700;display:flex}.reserve-button:hover,.primary-button:hover{background:var(--brand-dark)}.event-info{color:#b3494e;background:#fcf2f3;border-radius:9px;gap:9px;margin-top:auto;padding:10px;display:flex}.event-info div{display:grid}.event-info strong{font-size:11px}.event-info small{font-size:10px}.inactive-note{color:#7a898b;text-align:center;background:#f2f4f4;border-radius:9px;margin-top:auto;padding:10px;font-size:11px}.primary-button{background:var(--brand);color:#fff;border:0;border-radius:10px;align-items:center;gap:7px;padding:12px 17px;font-weight:700;display:flex}.registry-heading{align-items:center}.registry-panel{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 30px #254e5110}.registry-tools{border-bottom:1px solid var(--line);align-items:center;padding:17px;display:flex}.registry-tools .search{width:330px}.registry-tools>span{color:#819092;margin-left:auto;font-size:12px}.registry-row{border-bottom:1px solid #edf1f0;grid-template-columns:42px 1.2fr 1fr 90px 34px;align-items:center;gap:14px;padding:16px 20px;display:grid}.registry-row:last-child{border-bottom:0}.avatar{background:var(--mint);width:38px;height:38px;color:var(--brand);border-radius:10px;place-items:center;display:grid}.registry-name{display:grid}.registry-name strong{color:#284b4e;font-size:14px}.registry-name small,.secondary{color:#819092;font-size:12px}.active-tag{color:#277f5e;background:#eaf6f1;border-radius:999px;align-items:center;gap:6px;width:fit-content;padding:6px 9px;font-size:11px;display:flex}.active-tag i{background:var(--green);border-radius:50%;width:5px;height:5px}.more{color:#809092;background:0 0;border:0;font-weight:700}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#082d32aa;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;width:min(570px,100%);max-height:calc(100vh - 40px);padding:28px;position:relative;overflow:auto;box-shadow:0 30px 80px #06272d55}.close{color:#617476;background:#f1f5f4;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:18px;right:18px}.modal-title{align-items:center;gap:14px;margin-bottom:25px;padding-right:35px;display:flex}.modal-title small{color:#3e9a7f;text-transform:uppercase;letter-spacing:1px;font-weight:800}.modal-title h2{color:#173f43;margin:2px 0;font-family:Manrope}.modal-title p{color:#829092;margin:0;font-size:12px}.modal form{gap:15px;display:grid}.modal label{color:#486366;gap:6px;font-size:12px;font-weight:700;display:grid}.modal select,.modal input{color:#284a4d;outline-color:var(--brand);background:#fbfdfc;border:1px solid #d9e4e2;border-radius:9px;width:100%;padding:11px}.form-row{grid-template-columns:1.4fr 1fr 1fr;gap:12px;display:grid}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;margin-top:5px;padding-top:18px;display:flex}.secondary-button{border:1px solid var(--line);color:#607476;background:#fff;border-radius:10px;padding:11px 17px;font-weight:700}.success{text-align:center;padding:28px 10px 10px}.success>span{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:66px;height:66px;margin:auto;display:grid}.success h2{color:#173f43;margin-bottom:8px;font-family:Manrope;font-size:26px}.success p{color:#718385;max-width:410px;margin:0 auto 24px}.success button{margin:auto}.empty{text-align:center;color:#809092;border:1px dashed var(--line);background:#fff;border-radius:16px;grid-column:1/-1;padding:60px}footer{text-align:center;color:#8a999a;border-top:1px solid var(--line);padding:22px;font-size:11px}footer span{color:var(--brand);font-weight:800}.account-area{align-items:center;gap:8px;margin-left:auto;display:flex}.account-area .account{margin-left:0}.logout-button{color:#718385;background:#f3f7f6;border:0;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.logout-button:hover{color:#b9484e;background:#fbecee}.account-row{grid-template-columns:42px 1.2fr 1fr 90px 210px!important}.account-actions{justify-content:flex-end;align-items:center;gap:5px;display:flex}.connect-account-button{gap:6px;font-size:12px;font-weight:700;width:auto!important;color:var(--brand)!important;background:#edf6f3!important;padding:7px 10px!important}.connect-account-button.connected{color:#277f5e!important;background:#e1f3eb!important}.login-page{background:#fff;grid-template-columns:minmax(380px,46%) 1fr;width:100%;max-width:none;min-height:100vh;margin:0;padding:0;display:grid}.login-intro{color:#fff;background:radial-gradient(circle at 15% 80%,#217a7144 0 18%,#0000 19%),linear-gradient(145deg,#0d5b61,#073b40);flex-direction:column;justify-content:space-between;padding:clamp(35px,6vw,76px);display:flex;position:relative;overflow:hidden}.login-intro:after{content:"";border:1px solid #ffffff18;border-radius:48% 52% 63% 37%;width:440px;height:440px;position:absolute;bottom:-130px;right:-210px;transform:rotate(22deg)}.login-brand{letter-spacing:-1.6px;align-items:center;gap:4px;font:800 27px Manrope;display:flex}.login-brand>span{width:42px;height:42px;color:var(--brand);background:#fff;border-radius:12px 12px 12px 4px;place-items:center;margin-right:7px;display:grid}.login-brand strong,.login-mobile-brand strong{color:#72cbae}.login-intro .eyebrow{color:#7ed6bb}.login-intro h1{color:#fff;margin:14px 0 20px;font-size:clamp(38px,4.5vw,62px);line-height:1.05}.login-intro p{color:#d0e4e1;max-width:450px;line-height:1.7}.login-intro>small{color:#9fc3bf}.login-panel{place-items:center;padding:40px 24px;display:grid}.login-card{width:min(420px,100%)}.login-card h2{color:#173f43;letter-spacing:-1.2px;margin:9px 0 7px;font:800 34px Manrope}.login-card>p{color:#718385;margin:0 0 30px}.login-card>label{color:#3d5c5f;gap:8px;margin:18px 0;font-size:13px;font-weight:700;display:grid}.login-input{color:#829493;background:#fbfdfc;border:1px solid #d8e4e1;border-radius:11px;align-items:center;gap:10px;height:49px;padding:0 14px;transition:border .2s,box-shadow .2s;display:flex}.login-input:focus-within{border-color:#3e9a7f;box-shadow:0 0 0 3px #3e9a7f18}.login-input input{color:#23484b;background:0 0;border:0;outline:0;flex:1;min-width:0}.login-input button{color:#7d9090;background:0 0;border:0;padding:3px;display:grid}.login-button{background:var(--brand);color:#fff;border:0;border-radius:11px;justify-content:center;gap:10px;width:100%;margin-top:7px;padding:14px 17px;font-weight:800;display:flex}.login-button:hover{background:var(--brand-dark)}.login-button:disabled{cursor:wait;opacity:.7}.login-error{color:#a53e45;background:#fbecee;border-radius:9px;margin:18px 0 5px;padding:11px 13px;font-size:12px}.login-help{text-align:center;color:#899899;margin-top:22px;display:block}.login-mobile-brand{display:none}.session-loading{place-items:center;min-height:100vh;display:grid}.session-loading span{border:3px solid var(--mint);border-top-color:var(--brand);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.topbar{gap:12px;padding:0 20px}.mobile-menu{display:grid}.logo{min-width:160px}.topbar nav{border:1px solid var(--line);background:#fff;border-radius:14px;height:auto;padding:8px;display:none;position:absolute;top:76px;left:16px;right:16px;box-shadow:0 15px 40px #183d4033}.topbar nav.open{display:grid}.topbar nav button{border-radius:8px;padding:13px}.topbar nav button.active{background:#edf6f3}.topbar nav button.active:after,.account div,.account svg{display:none}.account{padding-left:12px}.room-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.login-page{background:#f4f8f7;grid-template-columns:1fr}.login-intro{display:none}.login-panel{min-height:100vh}.login-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:30px 25px;box-shadow:0 18px 55px #173f4314}.login-mobile-brand{color:var(--brand);align-items:center;gap:4px;margin-bottom:35px;font:800 23px Manrope;display:flex}.login-mobile-brand svg{margin-right:4px}}@media (width<=640px){main{width:min(100% - 28px,1220px);padding-top:30px}.account{border:0;padding:0}.logo{margin-right:auto}.page-heading{gap:20px;display:grid}.date-chip{width:fit-content}.status-overview{grid-template-columns:repeat(3,1fr);display:grid}.status-overview>button{justify-content:center;padding:8px}.status-overview>button span{font-size:0}.status-overview>button strong{font-size:13px}.status-overview .search{grid-column:1/-1;width:100%;margin:4px 0 0}.room-grid{grid-template-columns:1fr}.registry-row{grid-template-columns:42px 1fr 34px}.registry-row .secondary,.registry-row .active-tag{display:none}.registry-tools .search{width:75%}.form-row{grid-template-columns:1fr 1fr}.form-row label:first-child{grid-column:1/-1}.modal{padding:22px}.room-card{min-height:270px}}.pwa-toast{z-index:100;border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:18px;width:min(430px,100vw - 40px);padding:16px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 18px 55px #173f4333}.pwa-toast>div:first-child{gap:4px;display:grid}.pwa-toast strong{color:var(--brand-dark);font-size:14px}.pwa-toast span{color:#718385;font-size:12px;line-height:1.45}.pwa-toast-actions{gap:8px;margin-left:auto;display:flex}.pwa-toast-actions .primary-button,.pwa-toast-actions .secondary-button{padding:9px 12px;font-size:12px}.offline-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(100% - 40px,520px);min-height:100vh;margin:auto;padding:48px 0;display:flex}.offline-page img{border-radius:24px;margin-bottom:24px;box-shadow:0 14px 38px #173f4326}.offline-page h1{margin-bottom:12px}.offline-page p{color:#718385;max-width:450px;margin:0 0 26px;line-height:1.6}@media (width<=540px){.pwa-toast{flex-direction:column;align-items:stretch}.pwa-toast-actions{justify-content:flex-end;margin-left:0}}@media (width<=640px){.account-row{grid-template-columns:42px 1fr 120px!important}.account-row .account-actions>button:not(.connect-account-button){display:none}.connect-account-button{font-size:11px;padding:7px 8px!important}}textarea{font:inherit;resize:vertical}.room-card.inactive{opacity:1}.card-actions{gap:8px;margin-top:auto;padding-top:16px;display:flex}.card-actions .secondary-button{flex:1;justify-content:center;align-items:center;gap:7px;padding:9px 12px;display:flex}.danger-icon,.row-actions button{border:1px solid var(--line);color:#708183;background:#fff;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.danger-icon:hover,.row-actions .danger-icon:hover{color:#b83f48;background:#fff4f5;border-color:#f0c9cc}.row-actions{gap:5px;display:flex}.registry-row{grid-template-columns:42px 1.2fr 1fr 90px 82px}.active-tag.inactive-tag{color:#6c797b;background:#eef1f1}.active-tag.inactive-tag i{background:var(--gray)}.modal textarea{color:#284a4d;outline-color:var(--brand);background:#fbfdfc;border:1px solid #d9e4e2;border-radius:9px;width:100%;padding:11px}.form-row.two{grid-template-columns:1fr 1fr}.notice{border-radius:9px;padding:11px 13px;font-size:12px}.notice.error{color:#a53e45;background:#fbecee}.content-loading{color:#718385;justify-content:center;align-items:center;gap:10px;min-height:150px;display:flex}.content-loading span{border:2px solid var(--mint);border-top-color:var(--brand);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}.danger-button{color:#fff;background:#bd464e;border:0;border-radius:10px;padding:11px 17px;font-weight:700}.danger-button:hover{background:#9f353d}.danger-button:disabled,.primary-button:disabled{opacity:.65;cursor:wait}.confirm-modal{width:min(450px,100%)}.confirm-modal h2{color:#173f43;margin:0 0 8px;font-family:Manrope}.confirm-modal p{color:#718385;line-height:1.55}.empty{text-align:center;color:#819092;grid-column:1/-1;padding:46px 20px}.reservation-list{gap:10px;display:grid}.reservation-row{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:44px minmax(210px,1fr) minmax(220px,.8fr) 100px 88px;align-items:center;gap:15px;padding:16px 18px;display:grid;box-shadow:0 5px 18px #254e510b}.reservation-row.cancelled{opacity:.65}.reservation-icon{width:40px;height:40px;color:var(--brand);background:var(--mint);border-radius:10px;place-items:center;display:grid}.reservation-row>div{gap:3px;display:grid}.reservation-row strong{color:#284b4e;font-size:14px}.reservation-row small{color:#819092;font-size:11px}.reservation-time{color:#597174;grid-template-columns:18px 1fr;align-items:center;font-size:12px;gap:8px!important;display:flex!important}.reservation-time span{gap:2px;display:grid}.reservation-status{color:#277f5e;background:#eaf6f1;border-radius:999px;width:fit-content;padding:6px 9px;font-size:11px;font-weight:700}.reservation-status.cancelled{color:#7a898b;background:#eef1f1}.reservation-status.completed{color:#436b87;background:#edf4f8}.cancel-reservation{color:#b83f48;background:#fff4f5;border:1px solid #f0c9cc;border-radius:8px;padding:8px 10px;font-size:11px;font-weight:700}.cancel-reservation:hover{background:#fbe5e7}.room-card .reserve-button{text-align:center;align-items:center;margin-top:16px}.room-card .card-actions{margin-top:8px}@media (width<=640px){.registry-row{grid-template-columns:42px 1fr 82px}.row-actions{display:flex}.form-row.two{grid-template-columns:1fr}.reservation-row{grid-template-columns:40px 1fr auto}.reservation-time{grid-column:2/-1}.reservation-status{grid-column:2}.cancel-reservation{grid-column:3}}
