:root { --green:#07866f; --dark:#17443a; --soft:#eaf8f4; --line:#d5e5e0; --muted:#667c76; --danger:#a74337; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:linear-gradient(180deg,#eaf9f5,#f8fbfa 45%); color:var(--dark); font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,input,select,textarea { font:inherit; }
.topbar { position:sticky; top:0; z-index:10; display:flex; justify-content:space-between; align-items:center; min-height:58px; padding:9px 14px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); }
.topbar a { color:var(--dark); text-decoration:none; font-weight:800; }
.brand { display:flex; align-items:center; gap:7px; }.brand span { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; background:var(--green); color:#fff; }
.shell { width:min(760px,100%); margin:auto; padding:22px 12px 60px; }
.state-card,.panel { padding:20px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 14px 38px rgba(23,68,58,.08); }
.state-card { margin-top:10vh; text-align:center; }.state-card h1 { font-size:1.35rem; }.state-icon { font-size:2rem; }
.spinner { width:38px; height:38px; margin:auto; border:4px solid var(--soft); border-top-color:var(--green); border-radius:50%; animation:spin .8s linear infinite; } @keyframes spin { to { transform:rotate(360deg); } }
.button,button { padding:10px 13px; border:1px solid var(--line); border-radius:11px; background:#fff; color:var(--dark); font-weight:800; text-decoration:none; cursor:pointer; }
.eyebrow { margin:0 0 4px; color:var(--green); font-size:.7rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.muted { color:var(--muted); }
.home-list,.guest-list,.housekeeping-list,.operations-task-list,.handoff-list { display:grid; gap:10px; }.home-list button { display:flex; justify-content:space-between; width:100%; margin-top:8px; padding:16px; text-align:left; }
.heading { display:flex; justify-content:space-between; align-items:end; gap:12px; }.heading h1 { margin:0; font-size:1.55rem; }.heading label { display:grid; gap:4px; color:var(--muted); font-size:.72rem; font-weight:800; }.heading input { width:145px; }
input,select,textarea { width:100%; min-width:0; padding:11px; border:1px solid #bdd4cd; border-radius:11px; background:#fff; color:var(--dark); }
.privacy-note { margin:14px 0; padding:13px; border-radius:13px; background:#fff7dc; color:#6e5913; font-size:.82rem; line-height:1.5; }
.panel { margin-top:12px; }.panel h2 { margin:0 0 12px; font-size:1.3rem; }.summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px; }.summary article { padding:12px 8px; border-radius:13px; background:var(--soft); text-align:center; }.summary strong { display:block; font-size:1.25rem; }.summary span { color:var(--muted); font-size:.68rem; }
.guest-card,.housekeeping-card { padding:14px; border:1px solid var(--line); border-radius:15px; background:#fbfefd; }.guest-card header,.housekeeping-card header { display:flex; justify-content:space-between; gap:8px; }.guest-card p { margin:7px 0 0; color:var(--muted); font-size:.82rem; }.movement { padding:4px 7px; border-radius:999px; background:var(--soft); color:var(--green); font-size:.68rem; font-weight:900; }
.housekeeping-card { display:grid; gap:9px; }.controls { display:grid; grid-template-columns:1fr; gap:8px; }.save { border-color:var(--green); background:var(--green); color:#fff; }.status { min-height:1.2em; margin:0; color:var(--green); text-align:center; font-size:.78rem; font-weight:800; }.status.error { color:var(--danger); }.empty-list { padding:18px; border:1px dashed var(--line); border-radius:14px; color:var(--muted); text-align:center; }
.back { margin-bottom:12px; }
.operations-task-card,.handoff-card { display:grid; gap:9px; padding:14px; border:1px solid var(--line); border-radius:15px; background:#fbfefd; }.operations-task-card header,.handoff-card header { display:flex; justify-content:space-between; gap:8px; }.operations-task-card p,.handoff-card p { margin:0; color:var(--muted); font-size:.82rem; line-height:1.5; overflow-wrap:anywhere; }.priority { padding:4px 7px; border-radius:999px; background:var(--soft); color:var(--green); font-size:.66rem; font-weight:900; white-space:nowrap; }.priority[data-priority="HIGH"] { background:#fff0eb; color:#9c3d2f; }.priority[data-priority="LOW"] { background:#edf2f1; color:#61716d; }.task-controls,.handoff-form { display:grid; gap:8px; }.handoff-card time { color:var(--muted); font-size:.68rem; }
.shift-attention { display:grid; gap:9px; margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid var(--line); }.attention-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.attention-summary article { padding:10px 7px; border-radius:12px; background:var(--soft); text-align:center; }.attention-summary article[data-tone="warning"] { background:#fff0eb; color:#913d31; }.attention-summary strong,.attention-summary span { display:block; }.attention-summary strong { font-size:1.15rem; }.attention-summary span { margin-top:2px; color:var(--muted); font-size:.65rem; }.overdue-list { display:grid; gap:7px; }.overdue-list article { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px; border:1px solid #efc9c1; border-radius:12px; background:#fff9f7; }.overdue-list article > div { min-width:0; }.overdue-list strong,.overdue-list small { display:block; overflow-wrap:anywhere; }.overdue-list small { margin-top:3px; color:var(--muted); font-size:.68rem; }.overdue-list article > span { flex:0 0 auto; padding:4px 7px; border-radius:999px; background:#fff0eb; color:#913d31; font-size:.64rem; font-weight:900; }.attention-empty { margin:0; padding:10px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); text-align:center; font-size:.75rem; }
@media (min-width:680px) { .shell { padding:36px 18px 80px; }.controls { grid-template-columns:minmax(150px,.8fr) minmax(220px,1.2fr) auto; }.panel { padding:24px; }.attention-summary { grid-template-columns:repeat(4,minmax(0,1fr)); } }
