:root{font-family:Inter,system-ui,sans-serif;color:#17271d;background:#f1f4ef}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{background:#2e6942;color:white;border:0;border-radius:7px;padding:.75rem 1rem;cursor:pointer;font-weight:700}button:hover{background:#214f31}button:disabled{opacity:.5;cursor:wait}.secondary{color:#254b32;background:#e4eee5}.secondary:hover{background:#d1e3d2}.top{background:#143824;color:white;padding:15px max(4vw,20px);display:flex;align-items:center;justify-content:space-between;gap:1rem}.top span{font-size:.72rem;letter-spacing:.12em;margin-right:1rem}.logo{width:180px;max-height:65px}.top .logo{filter:brightness(0) invert(1)}.dashboard{max-width:1400px;margin:auto;padding:40px max(4vw,20px)}h1,h2,p{margin-top:0}h1{font-size:2.4rem;margin-bottom:.3rem}h2{font-size:1.5rem}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.13em;color:#54835c}.heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin:25px 0}.stat,.panel,.card,.login-card{background:#fff;border:1px solid #dce5da;border-radius:12px}.stat{padding:18px}.stat strong{display:block;font-size:2rem}.stat span{font-size:.8rem;color:#53685a}.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px}.tabs button{white-space:nowrap;background:#e4ebe2;color:#385340}.tabs button.selected{background:#285d39;color:#fff}.panel{padding:25px}.panel[hidden]{display:none}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:850px}th,td{padding:12px;text-align:left;border-bottom:1px solid #e5ece5;vertical-align:top;font-size:.88rem}th{color:#607166;font-size:.72rem;text-transform:uppercase}.badge{display:inline-block;padding:4px 9px;border-radius:20px;background:#e7eee6;font-size:.75rem;font-weight:700}.pending,.approved{background:#fff0c8;color:#765413}.occupied{background:#d5eee0;color:#225c37}.unavailable,.rejected,.cancelled{background:#f8dddd;color:#823838}.available{background:#dcefe6;color:#215f39}.completed{background:#e8ebeb;color:#52645c}.container-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.card{padding:16px}.card h3{margin:0 0 10px}.card p{font-size:.88rem}.card label,.login-card label{display:block;margin:12px 0;font-size:.85rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #bccbbd;border-radius:6px;padding:10px;background:white;color:#17271d}input[type=checkbox]{width:auto}.card button{width:100%;margin-top:8px}details{border:1px solid #dce5da;border-radius:8px;padding:12px;margin:10px 0}summary{cursor:pointer;font-weight:700}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.actions select{width:auto;min-width:150px}.actions button{font-size:.8rem;padding:.6rem}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:#e8efe8}.login-card{padding:35px;width:min(100%,440px);box-shadow:0 15px 50px #17382118}.login-card .logo{margin-bottom:25px}.login-card button{width:100%}.login-card a{color:#285d39}.error{color:#a32e2e}.notice{padding:12px;background:#e5f1e6;border-radius:6px;margin:10px 0}@media(max-width:600px){.top span{display:none}.heading,.section-heading{align-items:flex-start;flex-direction:column}.panel{padding:16px}.dashboard{padding-top:24px}.top .logo{width:140px}}

.top .logo { filter: none; }
.login-card > a:first-child { display: inline-block; background: #143824; border-radius: 8px; padding: 8px 12px; margin-bottom: 24px; }
.login-card .logo { display: block; margin: 0; }

/* Login page: scoped to preserve the management dashboard. */
.login-body { background: radial-gradient(ellipse at top left, #255b3e 0, #102e21 48%, #091b14 100%); }
.login-card { width: min(100%, 460px); padding: 40px; border: 1px solid #ffffff25; border-radius: 18px; box-shadow: 0 25px 80px #0005; }
.login-card > a:first-child { display: block; padding: 20px; background: #143824; margin: -16px -16px 30px; border-radius: 10px; }
.login-card .logo { width: 100%; max-width: 280px; max-height: none; height: auto; margin: auto; }
.login-card h1 { font-size: 2rem; letter-spacing: -.04em; }
.login-card > p:not(.eyebrow) { color: #607166; line-height: 1.6; }
.login-card label { margin: 20px 0; }
.login-card input { display: block; margin-top: 8px; padding: 13px; }
.login-card input:focus-visible { outline: 3px solid #9bd05970; border-color: #2e6942; }
.login-card button { padding: 14px; }
.login-card #message { color: #a32e2e; font-size: .88rem; line-height: 1.5; }
.login-card > a:last-child { font-size: .85rem; text-decoration: none; }
@media (max-width: 480px) { .login-card { padding: 28px; } }
.message-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.reply-record { background: #f1f5ef; padding: 16px; margin: 12px 0; border-radius: 8px; }
[data-reply] { border-top: 1px solid #dce5da; padding: 20px 0; max-width: 720px; }
[data-reply] label { display:block; margin-bottom:14px; font-weight:600; }
[data-reply] input, [data-reply] textarea { display:block; margin-top:8px; }

.install-banner { margin-top:24px; padding:16px; border:1px solid #cddccc; border-radius:10px; background:#f1f6ee; }
.install-banner[hidden] { display:none; }
.install-banner p { margin:12px 0 0; color:#405844; font-size:.88rem; line-height:1.6; }
.agreement-box{margin-top:24px;border-top:1px solid #dce5da;padding-top:18px}.agreement-box form{max-width:650px}.agreement-box label{display:block;margin:14px 0}.agreement-box input[type=checkbox]{width:auto}.agreement-feedback{overflow-wrap:anywhere}
