:root{--paper: #f4f1ea;--paper-raised: #fbf9f4;--ink: #1c1a17;--ink-soft: #6e685e;--rule: #d8d2c4;--accent: #7a1f1f;--ok: #2f6b3a;--warn: #9a6b1f;--display: "Fraunces", serif;--mono: "Spline Sans Mono", monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);background-image:radial-gradient(rgba(28,26,23,.035) 1px,transparent 1px);background-size:22px 22px;color:var(--ink);font-family:var(--mono);font-size:14px;line-height:1.5}.shell{max-width:1180px;margin:0 auto;padding:0 28px 80px}header.masthead{display:flex;align-items:baseline;gap:24px;padding:28px 0 18px;border-bottom:3px double var(--ink)}header.masthead h1{font-family:var(--display);font-weight:600;font-size:34px;letter-spacing:-.01em;margin:0}header.masthead .sub{color:var(--ink-soft);font-size:12px;text-transform:uppercase;letter-spacing:.14em}nav.tabs{display:flex;gap:4px;margin:18px 0 26px}nav.tabs button{font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid transparent;border-bottom:2px solid transparent;color:var(--ink-soft);padding:8px 14px;cursor:pointer}nav.tabs button:hover{color:var(--ink)}nav.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}h2.section{font-family:var(--display);font-weight:500;font-size:21px;margin:34px 0 6px}p.note{color:var(--ink-soft);font-size:12.5px;margin:0 0 16px;max-width:68ch}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.room-card{background:var(--paper-raised);border:1px solid var(--rule);padding:16px 16px 13px;position:relative}.room-card .num{font-family:var(--display);font-size:26px;font-weight:600}.room-card .status{margin-top:6px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.room-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.room-card.unclean:before{background:var(--accent)}.room-card.clean:before{background:var(--warn)}.room-card.inspected:before{background:var(--ok)}.room-card.unclean .status{color:var(--accent)}.room-card.clean .status{color:var(--warn)}.room-card.inspected .status{color:var(--ok)}table.ledger{width:100%;border-collapse:collapse;background:var(--paper-raised)}table.ledger th{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);font-weight:500;border-bottom:2px solid var(--ink);padding:9px 12px;text-align:left}table.ledger td{border-bottom:1px solid var(--rule);padding:9px 12px;vertical-align:middle}table.ledger tr:hover td{background:#7a1f1f08}.pill{display:inline-block;font-size:11px;padding:2px 9px;border:1px solid currentColor;border-radius:999px;text-transform:uppercase;letter-spacing:.08em}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.pill.bad{color:var(--accent)}.pill.dim{color:var(--ink-soft)}button.action{font-family:var(--mono);font-size:12px;background:var(--ink);color:var(--paper);border:none;padding:6px 14px;cursor:pointer;letter-spacing:.04em}button.action:hover{background:var(--accent)}button.action.ghost{background:none;color:var(--ink);border:1px solid var(--ink)}button.action.ghost:hover{color:var(--accent);border-color:var(--accent)}button.action:disabled{opacity:.4;cursor:default}select.plain{font-family:var(--mono);font-size:13px;background:var(--paper-raised);color:var(--ink);border:1px solid var(--rule);padding:4px 8px}.toolbar{display:flex;gap:10px;margin:10px 0 18px;flex-wrap:wrap}.wear-photo{height:64px;border:1px solid var(--rule);display:block}.kpis{display:flex;gap:14px;margin:12px 0 4px;flex-wrap:wrap}.kpi{background:var(--paper-raised);border:1px solid var(--rule);padding:14px 20px;min-width:150px}.kpi .n{font-family:var(--display);font-size:30px;font-weight:600}.kpi .l{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.banner{border:1px solid var(--rule);border-left:4px solid var(--accent);background:var(--paper-raised);padding:12px 16px;font-size:12.5px;color:var(--ink-soft);margin-bottom:22px;max-width:90ch}.banner b{color:var(--ink)}.empty{color:var(--ink-soft);font-size:13px;padding:26px 0}code.inline{background:#1c1a170f;padding:1px 5px;font-size:12.5px}
