:root{color:#1c1917;background:#efe8dc;font-family:Outfit,Segoe UI,sans-serif;line-height:1.45;--paper: #efe8dc;--surface: #fffcf7;--ink: #1c1917;--muted: #5e584f;--line: #e3d8c8;--accent: #1b4332;--accent-ink: #f6f3ec;--brass: #a16207;--danger: #9f1239;--radius: 18px;--shadow: 0 16px 40px rgba(48, 36, 18, .06)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(900px 420px at -10% -20%,rgba(27,67,50,.16),transparent 55%),radial-gradient(700px 380px at 110% 0%,rgba(161,98,7,.14),transparent 50%),var(--paper)}button,input,select,textarea{font:inherit}a{color:var(--accent)}::selection{background:#d5e4d8}.app-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:14px 22px;background:#143528;color:var(--accent-ink);box-shadow:0 10px 30px #1435282e}.brand{display:flex;gap:10px;align-items:center;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#f4f1ea;color:#143528;font-family:Fraunces,Georgia,serif;font-weight:640;letter-spacing:-.04em}.brand strong,.brand small{display:block;line-height:1.15}.brand strong{font-weight:580}.brand small{color:#f6f3ecad;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.app-nav{display:flex;gap:4px;align-items:center;overflow-x:auto}.app-nav a{text-decoration:none;color:#f6f3ecbd;padding:8px 12px;border-radius:999px;white-space:nowrap;font-weight:500}.app-nav a.active{color:#143528;background:#f4f1ea}.header-tools{display:flex;gap:12px;align-items:center}.who{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f6f3ecc7;font-size:14px}.page{max-width:1080px;margin:0 auto;padding:36px 22px 80px}.stack{display:grid}.page-title{margin:0;font-family:Fraunces,Georgia,serif;font-size:40px;font-weight:560;letter-spacing:-.035em;line-height:1.05}.muted{margin:0;color:var(--muted)}p{margin:0}.card{background:var(--surface);border:1px solid rgba(227,216,200,.9);border-radius:var(--radius);padding:8px 18px;box-shadow:var(--shadow)}.card:not(:has(table)){padding:22px}.btn{border-radius:999px;padding:10px 16px;cursor:pointer;font-weight:580;border:1px solid transparent}.btn:disabled{cursor:default;opacity:.55}.btn-primary{background:linear-gradient(180deg,#226046,#163c2d);color:var(--accent-ink);box-shadow:inset 0 1px #ffffff2e}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line)}.app-header .btn-secondary{color:var(--accent-ink);border-color:#f6f3ec47}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-secondary:hover:not(:disabled){background:#ffffff73}.app-header .btn-secondary:hover:not(:disabled){background:#ffffff14}.field{display:grid;gap:6px}.field>span{font-size:13px;color:var(--muted);font-weight:500}.control{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;width:100%;color:var(--ink)}.control:focus{outline:3px solid rgba(27,67,50,.16);border-color:#1b4332}textarea.control{resize:vertical}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#faf6ef}td a{color:var(--ink);font-weight:600;text-decoration:none}td a:hover{color:var(--accent)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;background:var(--surface);border:1px solid rgba(227,216,200,.9);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.form-grid>.check-row,.form-grid>div,.form-grid>p,.form-grid>button,.form-grid>.field:has(textarea),.form-grid>.field:has(canvas){grid-column:1 / -1}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.filters .field{min-width:180px}.check-row{display:grid;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.check-options{display:flex;flex-wrap:wrap;gap:8px}.check-options label{position:relative;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}.check-options label:has(input:checked){background:#143528;color:var(--accent-ink);border-color:#143528}.check-options input{accent-color:#143528}.signature-box{display:grid;gap:8px}.signature-pad{width:100%;height:160px;border:1px dashed #c9bba6;border-radius:14px;background:linear-gradient(#fff,#fff) padding-box;touch-action:none;cursor:crosshair}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;letter-spacing:.01em;background:#f1ebe3;color:#44403c}.pill-good{background:#dcecde;color:#14532d}.pill-warn{background:#f8e7c2;color:#854d0e}.pill-bad{background:#f8d7e0;color:#9f1239}.pill-info{background:#dbe7f5;color:#1e3a5f}td a+.pill{margin-left:8px}.photo-grid{display:flex;flex-wrap:wrap;gap:12px}.photo-grid figure{display:grid;gap:8px;margin:0}.photo-grid img{width:148px;height:148px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:#fff}.photo-pick input{display:none}.hero{display:grid;gap:8px;padding:8px 0 10px}.eyebrow{margin:0;color:var(--brass);font-size:12px;font-weight:650;letter-spacing:.14em;text-transform:uppercase}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.tile{display:grid;align-content:end;gap:6px;min-height:148px;padding:20px;border-radius:18px;background:var(--surface);border:1px solid rgba(227,216,200,.9);box-shadow:var(--shadow);text-decoration:none;color:inherit;position:relative;overflow:hidden}.tile:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:#143528}.tile:nth-child(2):before{background:#a16207}.tile:nth-child(3):before{background:#1e3a5f}.tile:nth-child(4):before{background:#7f1d1d}.tile strong{font-family:Fraunces,Georgia,serif;font-size:30px;font-weight:560;letter-spacing:-.03em}.tile span{color:var(--muted)}.tile:hover{transform:translateY(-2px)}.identity{display:flex;justify-content:space-between;gap:12px;align-items:end}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-story{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:36px 48px 64px;background:radial-gradient(500px 240px at 20% 20%,rgba(244,241,234,.12),transparent 60%),#143528;color:#f6f3ec}.login-mark{font-family:Fraunces,Georgia,serif;font-size:28px;letter-spacing:-.04em}.login-story h1{margin:0;max-width:12ch;font-family:Fraunces,Georgia,serif;font-size:clamp(48px,6vw,76px);font-weight:560;letter-spacing:-.04em;line-height:.95}.login-story .eyebrow{color:#e7c98a}.login-story p{max-width:36ch;color:#f6f3ecc7}.login-panel{display:grid;align-content:end;justify-items:start;gap:18px;padding:40px 56px 64px}.login-intro{display:grid;gap:6px}.login-panel h2{margin:0;font-family:Fraunces,Georgia,serif;font-size:36px;font-weight:560;letter-spacing:-.03em}.login-card{width:min(440px,100%);background:var(--surface);border-radius:22px;padding:22px;box-shadow:var(--shadow);border:1px solid rgba(227,216,200,.9)}.code-input{text-align:center;letter-spacing:.28em;font-size:22px}.text-btn{border:0;background:transparent;color:var(--accent);font-weight:600;padding:0;cursor:pointer}.text-btn:disabled{opacity:.55;cursor:default}@media(max-width:860px){.app-header{grid-template-columns:1fr auto}.app-nav{grid-column:1 / -1;flex-wrap:wrap}.who{display:none}.login{grid-template-columns:1fr}.login-story{min-height:280px;padding:28px 22px}.form-grid{grid-template-columns:1fr}.calendar{grid-template-columns:repeat(2,1fr)}}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-day{min-height:64px;padding:6px;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:2px;font-size:12px}.calendar-day.booked{background:#f8e7c2}.bar-row{display:flex;align-items:center;gap:8px}.bar{height:10px;background:var(--accent);border-radius:99px}.qr{width:160px;height:160px}@media print{.app-header,.btn,.filters,.photo-pick{display:none!important}.page{padding:0}}
