:root{
  --ink:#16302c; --paper:#f6f4ee; --paper2:#fff; --teal:#2f6f68; --teal-deep:#1c4a45;
  --aqua:#7fb8ae; --line:#e2ded2; --danger:#b3492f;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:-apple-system,Helvetica,Arial,sans-serif;}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif; font-weight:500; margin:0 0 12px;}
a{color:var(--teal);}
img{max-width:100%; display:block;}

header.site{background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5;}
.nav{max-width:1080px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:14px 24px;}
.brand{display:flex; align-items:center; gap:10px; font-size:1.05rem;}
.brand img{height:34px;}
.nav ul{list-style:none; display:flex; gap:24px; margin:0; padding:0;}
.nav a{text-decoration:none; color:var(--ink); font-size:.92rem;}
.btn-pill{background:var(--teal); color:#fff !important; padding:9px 18px; border-radius:999px; font-size:.88rem; font-weight:600;}

.hero{position:relative;}
.hero img{width:100%; height:min(60vh,480px); object-fit:cover; filter:brightness(.65);}
.hero-copy{position:absolute; inset:0; display:flex; align-items:center; padding:0 24px;}
.hero-copy-inner{max-width:1080px; margin:0 auto; color:#fff;}
.hero h1{color:#fff; font-size:clamp(1.8rem,4vw,3rem); max-width:14ch;}
.hero p{max-width:44ch; margin-bottom:20px;}

.section{max-width:1080px; margin:0 auto; padding:56px 24px;}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:28px;}
.grid3 .card{background:var(--paper2); padding:22px 20px;}
@media (max-width:700px){ .grid3{grid-template-columns:1fr;} .nav ul{display:none;} }

footer.site{border-top:1px solid var(--line); padding:26px 24px; text-align:center; font-size:.85rem; opacity:.65;}

/* Panel */
.panel-header{background:var(--teal-deep); color:#fff; padding:14px 22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.panel-header a{color:#fff;}
.panel-nav{display:flex; gap:16px; font-size:.88rem;}
.panel-nav a{opacity:.85; text-decoration:none;}
.panel-nav a.active{opacity:1; font-weight:600; text-decoration:underline;}
main.panel{max-width:960px; margin:0 auto; padding:26px 20px 60px;}
.card{background:var(--paper2); border:1px solid var(--line); border-radius:10px; padding:20px; margin-bottom:18px;}
table{width:100%; border-collapse:collapse; font-size:.88rem;}
th,td{text-align:left; padding:8px 10px; border-bottom:1px solid var(--line);}
th{opacity:.6; font-size:.72rem; text-transform:uppercase;}
.pill{font-size:.72rem; padding:2px 9px; border-radius:999px; background:rgba(47,111,104,.14);}
.pill.pending{background:rgba(179,73,47,.14); color:var(--danger);}
.btn{background:var(--teal); color:#fff; border:none; padding:9px 16px; border-radius:7px; font-size:.85rem; font-weight:600; cursor:pointer;}
.btn.ghost{background:none; border:1px solid var(--line); color:var(--ink);}
.btn.danger{background:var(--danger);}
input,select,textarea{padding:8px 10px; border:1px solid var(--line); border-radius:6px; font-size:.88rem; font-family:inherit; background:var(--paper); color:var(--ink);}
label{font-size:.78rem; opacity:.7; display:block; margin-bottom:3px;}
.field{margin-bottom:12px;}
.row{display:flex; gap:14px; flex-wrap:wrap;}
.shift-row{display:flex; gap:10px; align-items:center; margin-bottom:6px;}
.auth-card{max-width:380px; margin:80px auto; }
.notice-box{font-size:.85rem; border:1px solid var(--line); border-radius:6px; padding:10px 14px; opacity:.8; margin-bottom:16px;}
.error-box{font-size:.85rem; border:1px solid var(--danger); color:var(--danger); border-radius:6px; padding:10px 14px; margin-bottom:16px;}

/* Chat receptionist */
.chat-widget{position:fixed; right:20px; bottom:20px; z-index:40;}
.chat-fab{width:58px; height:58px; border-radius:50%; background:var(--teal); color:#fff; border:none; font-size:1.4rem; box-shadow:0 6px 20px rgba(28,74,69,.35); cursor:pointer;}
.chat-panel{position:fixed; right:20px; bottom:88px; width:min(340px,calc(100vw - 40px)); max-height:70vh; background:var(--paper2); border:1px solid var(--line); border-radius:12px; box-shadow:0 14px 40px rgba(0,0,0,.22); display:none; flex-direction:column; overflow:hidden;}
.chat-panel.open{display:flex;}
.chat-head{background:var(--teal-deep); color:#fff; padding:12px 16px; display:flex; justify-content:space-between;}
.chat-body{flex:1; overflow-y:auto; padding:12px 14px; display:flex; flex-direction:column; gap:8px;}
.msg{max-width:85%; padding:8px 12px; border-radius:10px; font-size:.86rem; line-height:1.4;}
.msg.bot{background:rgba(47,111,104,.1); align-self:flex-start;}
.msg.user{background:var(--teal); color:#fff; align-self:flex-end;}
.chat-input-row{display:flex; gap:8px; padding:10px; border-top:1px solid var(--line);}
.chat-input-row input{flex:1;}
