*,:after,:before{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#111;background:#fafafa;line-height:1.5}main{max-width:860px;margin:0 auto;padding:2.5rem 1.5rem}code{background:#eee;padding:.1em .35em;border-radius:4px;font-size:.9em}h1{font-size:1.6rem}h2{font-size:1.15rem;margin-top:1.75rem}table{border-collapse:collapse;width:100%;background:#fff;border:1px solid #e6e6e6;border-radius:8px;overflow:hidden}th{background:#f3f4f6;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#555}td,th{text-align:left;padding:.5rem .75rem;border-bottom:1px solid #ececec}tr:last-child td{border-bottom:none}main input:not([type=checkbox]):not([type=radio]):not([type=file]),main select,main textarea{padding:.45rem .6rem;border:1px solid #cfd4dc;border-radius:7px;font:inherit;background:#fff;color:#111}main input:focus,main select:focus,main textarea:focus{outline:2px solid #1e2a4a33;border-color:#1e2a4a}main button,nav button{padding:.45rem .9rem;border:1px solid #1e2a4a;border-radius:7px;background:#1e2a4a;color:#fff;font:inherit;font-size:.9rem;cursor:pointer;transition:opacity .12s}main button:hover:not(:disabled){opacity:.88}main button:disabled{opacity:.55;cursor:default}main button.danger{background:#fff;color:#b00020;border-color:#d8b1b7}main a{color:#1e2a4a}nav a{color:#333;text-decoration:none;font-size:.95rem}nav a:hover{color:#1e2a4a;text-decoration:underline}.calendar-filters{display:flex;gap:.75rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:.75rem}.calendar-filters details{border:1px solid #ccc;border-radius:6px;padding:.3rem .6rem;background:#fff;max-height:300px;overflow-y:auto}.event-cancelled{opacity:.45;text-decoration:line-through}.event-hold-expired{opacity:.55;background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(255,255,255,.35) 0,rgba(255,255,255,.35) 12px)}.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:50}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,95vw);background:#fff;padding:1.25rem;overflow-y:auto;box-shadow:-4px 0 16px rgba(0,0,0,.15);gap:.6rem}.drawer,.drawer label{display:flex;flex-direction:column}.drawer label{gap:.2rem;font-size:.9rem}.drawer input,.drawer select,.drawer textarea{padding:.35rem .5rem;border:1px solid #ccc;border-radius:6px;font:inherit}.row{display:flex;align-items:center;gap:.4rem;flex-direction:row!important}.msg-error{color:#b00020;background:#fdecea}.msg-error,.msg-warning{padding:.5rem .75rem;border-radius:6px}.msg-warning{color:#7a5300;background:#fff4d6}button.danger{color:#b00020}.landing{display:grid;grid-template-columns:minmax(380px,44%) 1fr;min-height:calc(100vh - 52px);max-width:none!important;padding:0!important}@media (max-width:900px){.landing{grid-template-columns:1fr}.landing-right{display:none}}.landing-left{flex-direction:column;justify-content:center;padding:3rem 2rem;background:#f6f7f9}.landing-brand,.landing-left{display:flex;align-items:center}.landing-brand{gap:.6rem;align-self:flex-start;margin-bottom:2.5rem;font-family:Georgia,Times New Roman,serif;letter-spacing:.18em;font-size:.95rem;color:#1e2a4a}.landing-mark{display:inline-grid;place-items:center;width:34px;height:34px;border:2px solid #1e2a4a;border-radius:6px;font-size:1.15rem;font-family:Georgia,serif;letter-spacing:0;font-weight:700}.landing-security-note{margin-top:1.5rem;color:#666;font-size:.85rem;text-align:center}.landing-right{padding:4rem 3.5rem;background:linear-gradient(160deg,#eef1f5,#dfe4ec 60%,#cfd6e2);display:flex;flex-direction:column;justify-content:center;gap:2rem}.landing-headline{font-family:Georgia,Times New Roman,serif;font-size:2.4rem;line-height:1.15;color:#101828;max-width:480px;margin:0}.landing-feature{display:flex;gap:1rem;align-items:flex-start;max-width:460px}.landing-feature-icon{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:#1e2a4a;box-shadow:0 1px 4px rgba(16,24,40,.12)}.landing-feature strong{display:block;font-size:1.05rem;color:#101828}.landing-feature p{margin:.15rem 0 0;color:#475467}.landing-footer{display:flex;justify-content:center;gap:1.5rem;padding:1rem;border-top:1px solid #e2e2e2;background:#fff;font-size:.85rem;color:#666}@media print{.no-print,nav{display:none!important}body{background:#fff}main.print-page{max-width:none!important;padding:0}}