:root{font-family:Inter,Arial,sans-serif;color:#142033;background:#f4f7fb;line-height:1.45;--blue:#1465d8;--cyan:#25bde9;--navy:#102b55;--line:#dce4ef;--danger:#b42318}*{box-sizing:border-box}body{margin:0}main{min-height:100vh}.login-card{width:min(940px,calc(100% - 32px));min-height:560px;margin:6vh auto;background:white;border-radius:28px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;box-shadow:0 28px 90px #15345d26}.login-brand-panel{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:38px;background:radial-gradient(circle at 50% 25%,#62d9f7 0,#1a91dc 37%,#0b4f9e 100%);color:white;overflow:hidden}.login-brand-panel:before,.login-brand-panel:after{content:"";position:absolute;border:1px solid #ffffff38;border-radius:50%}.login-brand-panel:before{width:340px;height:340px;top:-190px;right:-120px}.login-brand-panel:after{width:240px;height:240px;bottom:-140px;left:-90px}.login-logo{position:relative;width:min(330px,90%);filter:drop-shadow(0 18px 28px #06356555);z-index:1}.login-brand-panel div{position:relative;z-index:1;display:grid;gap:5px;margin-top:-20px}.login-brand-panel strong{font-size:22px}.login-brand-panel span{color:#e7f8ff}.login-form-panel{padding:52px 44px;display:flex;flex-direction:column;justify-content:center}.brand{display:flex;align-items:center;gap:12px}.brand img{width:82px;height:50px;object-fit:contain}.brand small{color:#637083;border-left:1px solid var(--line);padding-left:12px}h1{font-size:30px;margin:0 0 8px}h2{margin:0;font-size:24px}h3{margin-top:0}p{color:#687386}label{display:grid;gap:7px;font-size:13px;font-weight:700;margin:16px 0}input,select{width:100%;border:1px solid #cbd6e4;border-radius:12px;padding:12px;font:inherit;background:white}button{border:0;border-radius:12px;padding:12px 18px;background:linear-gradient(135deg,var(--blue),#0d82cd);color:white;font:inherit;font-weight:800;cursor:pointer}button.secondary,nav button{background:white;color:#34445c;border:1px solid var(--line)}button.icon{background:transparent;color:#526078;font-size:28px;padding:0}.access-note{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:13px}.error{margin-top:14px;padding:12px;border-radius:10px;background:#fff1f0;color:var(--danger)}header{display:flex;justify-content:space-between;align-items:center;padding:12px 28px;background:white;border-bottom:1px solid var(--line)}.user{display:flex;align-items:center;gap:12px}nav{padding:14px 28px;display:flex;gap:8px}nav button.active{background:var(--navy);color:white}.panel{margin:0 28px 28px;background:white;border-radius:20px;padding:24px;box-shadow:0 8px 30px #15345d0c}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-title p{margin:3px 0}.booking-list{display:grid;gap:10px}.booking{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:15px}.booking strong{color:var(--navy)}.status{padding:6px 9px;border-radius:999px;background:#eef5ff;color:#1657ae;font-size:12px;font-weight:800}.empty{padding:36px;text-align:center;color:#77859a;border:1px dashed #c9d4e2;border-radius:14px}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.catalog-grid article{border:1px solid var(--line);border-radius:16px;padding:18px}.catalog-item{padding:9px 0;border-top:1px solid #edf1f6}dialog{width:min(760px,calc(100% - 24px));border:0;border-radius:20px;padding:0;box-shadow:0 20px 80px #081e3d40}dialog::backdrop{background:#102b5566}dialog form{padding:24px}.dialog-title,.actions{display:flex;justify-content:space-between;align-items:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.actions{justify-content:flex-end;gap:10px;margin-top:20px}@media(max-width:700px){.login-card{margin:16px auto;grid-template-columns:1fr}.login-brand-panel{padding:22px;min-height:220px}.login-logo{width:200px}.login-brand-panel div{margin-top:-12px}.login-form-panel{padding:28px 22px}header,.section-title{align-items:flex-start;gap:14px}.user{align-items:flex-end;flex-direction:column}.panel{margin:0 12px 18px;padding:18px}nav{padding:12px}.catalog-grid,.form-grid{grid-template-columns:1fr}.booking{grid-template-columns:1fr 1fr}.section-title{flex-direction:column}}
/* Hidden views must stay hidden even when their component sets display:grid/flex. */
[hidden]{display:none!important}
