:root { font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif; color:#1f302a; background:#f7f4ec; }
.login-screen { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#173e31,#275746); }.login-card { width:min(420px,100%); padding:32px; border-radius:16px; background:#fffdf9; box-shadow:0 22px 60px #081c15aa; }.login-card .brand { color:#173e31; padding:0 0 28px; }.login-card h1 { font-size:2.45rem; }.login-card p { color:#627067; line-height:1.5; }.google-signin { margin-top:20px; min-height:42px; }.login-error { min-height:1.4em; margin:12px 0 0!important; color:#8b1e3f!important; }
* { box-sizing:border-box; } body { margin:0; min-width:320px; overflow-x:hidden; } button { font:inherit; cursor:pointer; }
[hidden] { display:none !important; }
.shell { min-height:100vh; min-width:0; display:grid; grid-template-columns:250px minmax(0,1fr); }.sidebar { background:#173e31; color:#eff1e8; padding:29px 19px; display:flex; flex-direction:column; min-width:0; }.brand { display:flex; gap:11px; align-items:center; font-family:Georgia,serif; font-size:1.08rem; padding:0 8px 35px; }.brand-mark { display:grid; place-items:center; width:38px; height:38px; border:1px solid #bb9a42; border-radius:50%; color:#f5e5b2; font-size:1.5rem; }.brand small { display:block; margin-top:3px; color:#cbbd90; font-family:Inter,sans-serif; font-size:.57rem; letter-spacing:.14em; }.sidebar nav { display:grid; gap:5px; }.nav-link { color:#dce6dd; background:transparent; border:0; text-align:left; border-radius:8px; padding:12px 13px; font-weight:650; }.nav-link:hover,.nav-link.active { background:#275746; color:#fff; }.nav-link em { float:right; font-style:normal; display:none; padding:1px 7px; border-radius:99px; background:#8b1e3f; color:white; font-size:.76rem; }.nav-link em.visible { display:inline; }.privacy { margin-top:auto; padding:14px 8px 0; color:#b7c8ba; font-size:.77rem; line-height:1.5; }
main { max-width:1420px; min-width:0; width:100%; margin:0 auto; padding:36px clamp(20px,4vw,58px) 70px; } header { display:flex; align-items:end; justify-content:space-between; gap:20px; }.eyebrow { margin:0 0 5px; color:#8b1e3f; font-size:.68rem; font-weight:800; letter-spacing:.13em; } h1,h2,h3 { font-family:Georgia,serif; } h1 { color:#8b1e3f; font-size:clamp(2.25rem,5vw,4rem); letter-spacing:-.055em; line-height:1; margin:0; }.status { display:flex; align-items:center; gap:11px; color:#627067; font-size:.8rem; }.status button { border:1px solid #1f4d3c; border-radius:8px; background:#1f4d3c; color:#fff; font-weight:750; padding:9px 13px; }.safety { margin:25px 0 9px; padding:12px 15px; color:#345044; background:#e4eee4; border-left:4px solid #2a634c; border-radius:6px; font-size:.86rem; }.updated { margin:0 0 18px; color:#79847b; font-size:.78rem; }.grid { display:grid; gap:16px; min-width:0; }.metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }.card { min-width:0; background:#fffdf9; border:1px solid #e7e0d3; box-shadow:0 7px 24px #3c2f1210; border-radius:14px; padding:20px; }.metric { min-height:126px; }.metric span { color:#78847b; font-size:.82rem; font-weight:700; }.metric strong { display:block; color:#8b1e3f; font:3rem/1 Georgia,serif; margin:14px 0 2px; }.metric small { color:#647168; }.section-title { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:11px 0 0; }.section-title h2 { color:#8b1e3f; margin:0; font-size:1.95rem; letter-spacing:-.03em; }.section-title p { color:#708078; font-size:.83rem; }.split { grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr); align-items:start; }.table-wrap { width:100%; max-width:100%; overflow-x:auto; }.data-table { width:100%; min-width:600px; border-collapse:collapse; text-align:left; }.data-table th { color:#66736a; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; padding:0 9px 10px; }.data-table td { border-top:1px solid #eee8dd; padding:12px 9px; font-size:.88rem; vertical-align:top; }.data-table tr:hover td { background:#fbf8f1; }.pill { display:inline-block; border-radius:99px; padding:3px 8px; font-size:.72rem; font-weight:750; background:#e7eee7; color:#215442; }.pill.warning { color:#7b5518; background:#f7e8bd; }.pill.red { color:#8b1e3f; background:#f5dde4; }.request { border-bottom:1px solid #eee8dd; padding:13px 0; }.request:first-child { padding-top:0; }.request:last-child { border-bottom:0; padding-bottom:0; }.request strong { display:block; }.request small { display:block; color:#6d796f; margin-top:4px; }.request p { margin:8px 0 0; color:#4b5b51; font-size:.86rem; white-space:pre-wrap; }.empty { color:#6e7a71; text-align:center; padding:27px 16px; }.search { width:100%; margin:5px 0 16px; padding:11px 12px; border:1px solid #d9d2c4; background:#fffdf9; border-radius:8px; font:inherit; }.note { padding:13px; border-radius:8px; background:#f8efcf; color:#695017; font-size:.83rem; }.calendar-item { display:grid; grid-template-columns:65px 1fr; gap:13px; padding:13px 0; border-bottom:1px solid #eee8dd; }.calendar-item:last-child { border:0; }.calendar-date { color:#8b1e3f; font-weight:800; font-size:.8rem; }.calendar-item b { display:block; }.calendar-item small { color:#6b786e; }.view { display:none; }.view.active { display:block; }
 .status { flex-wrap:wrap; justify-content:flex-end; gap:8px; }.status #new-booking,.status #new-visit { background:#fffdf9; color:#1f4d3c; }.action { border:1px solid #1f4d3c; border-radius:8px; background:#1f4d3c; color:#fff; font-weight:750; padding:6px 9px; font-size:.75rem; margin:0 4px 4px 0; }.action.neutral { color:#1f4d3c; background:#fffdf9; }.action.danger { color:#8b1e3f; border-color:#8b1e3f; background:#fffdf9; }.editor { width:min(680px,calc(100vw - 28px)); border:0; border-radius:16px; padding:0; color:#1f302a; box-shadow:0 24px 70px #10251bcc; }.editor::backdrop { background:#13211bb3; }.editor form { padding:23px; }.editor-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }.editor h2 { margin:0; color:#8b1e3f; font-size:2rem; }.close { border:0; background:transparent; color:#8b1e3f; font-size:2rem; line-height:1; }.editor-fields { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.field { display:grid; gap:5px; }.field.full { grid-column:1/-1; }.field label { font-size:.75rem; font-weight:800; color:#506158; }.field input,.field textarea,.field select { width:100%; border:1px solid #d9d2c4; border-radius:8px; padding:10px; color:#1f302a; background:#fffdf9; font:inherit; }.field textarea { min-height:80px; resize:vertical; }.editor-help { color:#69776e; font-size:.82rem; }.editor-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }.editor-actions button { border:1px solid #1f4d3c; border-radius:8px; background:#1f4d3c; color:#fff; font-weight:750; padding:9px 13px; }.editor-actions .secondary { color:#1f4d3c; background:#fffdf9; }.toast { position:fixed; right:18px; bottom:18px; max-width:min(440px,calc(100vw - 36px)); padding:13px 16px; border-radius:9px; background:#173e31; color:white; box-shadow:0 10px 30px #10251b55; transform:translateY(130px); transition:transform .2s; z-index:4; }.toast.show { transform:translateY(0); }.toast.error { background:#8b1e3f; }
@media(max-width:850px) { .shell { grid-template-columns:1fr; }.sidebar { padding:13px 17px; position:sticky; top:0; z-index:2; }.brand { padding:0 4px 10px; }.sidebar nav { display:flex; overflow:auto; gap:4px; }.nav-link { white-space:nowrap; padding:8px 10px; }.privacy { display:none; } main { padding-top:25px; }.metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.split { grid-template-columns:1fr; } }
@media(max-width:520px) { header { align-items:start; flex-direction:column; }.status { width:100%; justify-content:flex-start; }.metrics { grid-template-columns:1fr 1fr; gap:10px; }.card { padding:15px; }.metric strong { font-size:2.4rem; }.section-title { align-items:start; flex-direction:column; gap:2px; }.section-title h2 { font-size:1.65rem; }.editor-fields { grid-template-columns:1fr; }.field.full { grid-column:auto; } }
.phone-id b { display:block; font-size:.82rem; letter-spacing:.01em; }.phone-id small { display:block; color:#758178; font-size:.7rem; margin-top:3px; }
.calendar-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:8px 0 18px; }.calendar-controls b { color:#1f4d3c; text-transform:capitalize; font:1.35rem Georgia,serif; }.calendar-controls select { max-width:230px; border:1px solid #d9d2c4; background:#fffdf9; border-radius:8px; padding:8px; color:#1f302a; font:inherit; }.month-grid { display:grid; grid-template-columns:repeat(7,minmax(100px,1fr)); border-top:1px solid #e7e0d3; border-left:1px solid #e7e0d3; overflow-x:auto; }.month-day-name { min-width:100px; padding:9px; background:#f3eee2; color:#637067; border-right:1px solid #e7e0d3; border-bottom:1px solid #e7e0d3; text-align:center; font-size:.72rem; font-weight:800; text-transform:uppercase; }.month-cell { min-width:100px; min-height:112px; padding:7px; background:#fffdf9; border-right:1px solid #e7e0d3; border-bottom:1px solid #e7e0d3; }.month-cell.muted { background:#faf7f0; }.month-cell.today { background:#eef6ee; box-shadow:inset 0 0 0 2px #2a634c; }.day-number { display:block; color:#627067; font-size:.78rem; margin-bottom:6px; }.calendar-chip { display:block; margin:4px 0; padding:4px 5px; border-radius:5px; font-size:.67rem; font-weight:750; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.calendar-chip.arrival { background:#dcefe0; color:#215442; }.calendar-chip.departure { background:#f6e4bf; color:#76531b; }
.client-sheet{max-width:1080px;margin:0 auto}.sheet-actions{display:flex;gap:.65rem;justify-content:flex-end;margin-bottom:1rem}.sheet-name{font-size:2rem;margin:.2rem 0 1.4rem}.sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem}.sheet-field{border:1px solid #e7e0d3;background:#fffdf7;border-radius:.5rem;padding:.8rem;min-height:4.4rem}.sheet-field small{display:block;color:#6e7a71;margin-bottom:.25rem}.sheet-field strong{display:block;overflow-wrap:anywhere}.sheet-notes{white-space:pre-wrap}.sheet-source{font-size:.82rem;color:#6e7a71;margin-top:1.2rem}@media(max-width:700px){.sheet-grid{grid-template-columns:1fr 1fr}.sheet-name{font-size:1.65rem}}@media print{aside,header,.no-print,.toast{display:none!important}body,.shell,main{display:block!important;background:#fff!important;color:#111!important}.shell{min-height:0!important}main{padding:0!important}.client-sheet{box-shadow:none!important;border:0!important;padding:0!important}.table-wrap{overflow:visible!important}.data-table{font-size:11px!important}.data-table th,.data-table td{padding:5px!important}}
