:root{--paper:#F5F0E1;--paper-line:#DCCFA8;--ink:#241F1C;--ink-soft:#5B5348;--wine:#6E2430;--wine-deep:#4E1620;--gold:#A67C27;--gold-soft:#D8BE7F;--sage:#3F5346;--sage-soft:#DCE6DD;--danger:#8C3B2E;--radius:10px;--shadow: 0 2px 4px rgba(36,31,28,.08), 0 8px 24px rgba(36,31,28,.06)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:"Source Sans 3",sans-serif;background:var(--paper);color:var(--ink);background-image:linear-gradient(var(--paper-line) 1px,transparent 1px);background-size:100% 2.1em}.wrap{max-width:760px;margin:0 auto;padding:28px 20px 80px}h1,h2,h3{font-family:Fraunces,serif;font-weight:600;color:var(--ink);margin:0 0 4px}.eyebrow{font-family:"Source Sans 3",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--wine);font-weight:700;margin-bottom:6px}.top-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:22px;flex-wrap:wrap}.top-header .brand h1{font-size:1.5rem}.top-header .brand p{margin:0;font-size:.85rem;color:var(--ink-soft)}.tabs{display:flex;gap:2px;margin-bottom:26px;border-bottom:1px solid var(--paper-line)}.tab-btn{font-family:"Source Sans 3",sans-serif;font-weight:600;font-size:.88rem;background:none;border:none;padding:10px 16px;cursor:pointer;color:var(--ink-soft);border-bottom:3px solid transparent;letter-spacing:.01em}.tab-btn.active{color:var(--wine);border-bottom-color:var(--wine)}.card{background:#fffdf7;border:1px solid var(--paper-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}label{display:block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:6px;margin-top:16px}label:first-child{margin-top:0}.checkbox-row{display:flex;align-items:center;gap:8px;text-transform:none;font-weight:400;font-size:.85rem;color:var(--ink-soft);letter-spacing:normal;margin:0 0 16px;cursor:pointer}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--wine);cursor:pointer}input[type=text],input[type=date],input[type=time],input[type=url],input[type=email],input[type=password],input[type=number],select{width:100%;font-family:"Source Sans 3",sans-serif;font-size:1rem;padding:11px 12px;border:1.5px solid var(--paper-line);border-radius:7px;background:#fff;color:var(--ink)}input:focus,select:focus,button:focus-visible{outline:3px solid var(--gold-soft);outline-offset:1px;border-color:var(--gold)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:560px){.row2{grid-template-columns:1fr}}.btn{font-family:"Source Sans 3",sans-serif;font-weight:700;font-size:.92rem;padding:11px 20px;border-radius:7px;border:none;cursor:pointer;letter-spacing:.01em}.btn-primary{background:var(--wine);color:#fbf3e7}.btn-primary:hover{background:var(--wine-deep)}.btn-ghost{background:transparent;color:var(--wine);border:1.5px solid var(--wine)}.btn-ghost:hover{background:var(--sage-soft)}.btn-small{font-size:.78rem;padding:7px 12px}.btn-danger-ghost{background:transparent;color:var(--danger);border:1.5px solid var(--danger)}.actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.mass-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--paper-line);flex-wrap:wrap}.mass-row:last-child{border-bottom:none}.mass-name{font-family:Fraunces,serif;font-size:1.1rem;font-weight:600}.mass-meta{font-size:.82rem;color:var(--ink-soft);margin-top:2px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 9px;border-radius:20px}.badge-open{background:var(--sage-soft);color:var(--sage)}.badge-closed{background:#efe3e3;color:var(--danger)}.badge-recurring{background:var(--gold-soft);color:var(--gold)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.mass-actions{display:flex;gap:8px;flex-wrap:wrap}.empty{text-align:center;padding:36px 20px;color:var(--ink-soft)}.empty .eyebrow{color:var(--gold)}table{width:100%;border-collapse:collapse;margin-top:14px}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:2px solid var(--ink);padding:8px 6px}td{padding:9px 6px;border-bottom:1px solid var(--paper-line);font-size:.92rem}tr:last-child td{border-bottom:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#241f1c8c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:#fffdf7;border-radius:12px;padding:28px;max-width:380px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d}.modal img{border-radius:8px;border:1px solid var(--paper-line);margin:14px 0}.link-box{display:flex;gap:8px;align-items:center;background:var(--sage-soft);border-radius:7px;padding:9px 10px;margin-top:10px}.link-box input{border:none;background:none;font-size:.8rem;padding:0;color:var(--ink-soft)}.link-box input:focus{outline:none}.stamp{display:inline-block;border:3px solid var(--sage);color:var(--sage);font-family:Fraunces,serif;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:8px 18px;border-radius:8px;transform:rotate(-3deg);font-size:1.05rem;margin:6px 0 4px}.stamp.expired{border-color:var(--danger);color:var(--danger);transform:rotate(-2deg)}.center{text-align:center}.checkin-name{font-family:Fraunces,serif;font-size:1.05rem}.helptext{font-size:.82rem;color:var(--ink-soft);margin-top:6px;line-height:1.5}.footer-note{text-align:center;font-size:.76rem;color:var(--ink-soft);margin-top:30px;line-height:1.6}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--ink);color:#f5f0e1;padding:10px 18px;border-radius:8px;font-size:.85rem;z-index:60;box-shadow:0 8px 24px #00000040}code{background:var(--sage-soft);padding:2px 5px;border-radius:4px;font-size:.85em}.qr-print-sheet{display:none}@page{margin:0}@media print{body.printing-qr *{visibility:hidden}body.printing-qr .qr-print-sheet,body.printing-qr .qr-print-sheet *{visibility:visible}body.printing-qr .qr-print-sheet{display:block;position:absolute;top:0;left:0;width:100%}.qr-print-page{page-break-after:always;width:100%;height:100vh;box-sizing:border-box;padding:.6in;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.qr-print-page:last-child{page-break-after:auto}.qr-print-kicker{font-size:2rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:.15in}.qr-print-page h1{font-family:Fraunces,serif;margin:0 0 .4in;font-size:2rem}.qr-print-page .qr-print-image{width:6in;height:6in;display:block}}.calendar{max-width:280px;margin-top:6px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar-title{font-family:Fraunces,serif;font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekdays{margin-bottom:2px}.calendar-weekday{text-align:center;font-size:.7rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;padding:2px 0}.calendar-cell{aspect-ratio:1;border:none;background:transparent;border-radius:6px;font-size:.85rem;cursor:pointer;position:relative;color:var(--ink);font-family:inherit}.calendar-cell:hover{background:var(--sage-soft)}.calendar-cell-empty{cursor:default;pointer-events:none}.calendar-cell.has-mass:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--gold)}.calendar-cell.today{font-weight:700;text-decoration:underline}.calendar-cell.selected{background:var(--wine);color:#fbf3e7}.calendar-cell.selected.has-mass:after{background:#fbf3e7}
