:root{--color-link: #1a6db5;--color-positive: #16a34a;--color-negative: #dc2626;--color-warning: #d97706;--color-muted: #888;--color-revenue: #2c7a4b}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}a{text-decoration:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#faf9f7;color:#1a1a1a;font-size:15px}nav{display:flex;align-items:center;gap:1.5rem;padding:.875rem 2rem;background:#fff;border-bottom:1px solid #e6e3dc}.nav-brand{font-weight:600;margin-right:.5rem;color:#1a1a1a}nav a{color:var(--color-muted);font-size:.9rem}nav a.active{color:#1a1a1a;font-weight:500}.page{padding:2rem;max-width:1200px}.page h1{font-size:1.4rem;font-weight:600;margin-bottom:1.5rem}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{background:#fff;border-radius:10px;padding:1.25rem 1.5rem;border:1px solid #e6e3dc}a.card{display:block;color:inherit}a.card:hover{border-color:#c0bdb5}.card h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);font-weight:500;margin-bottom:.875rem}.card .count{font-size:2rem;font-weight:600;line-height:1;margin-bottom:.2rem}.card .label{font-size:.8rem;color:var(--color-muted);margin-bottom:.75rem}.card .revenue{font-size:1.1rem;font-weight:500;color:var(--color-revenue)}.card .revenue-upcoming{font-size:.875rem;color:var(--color-muted);margin-top:.2rem}.count-badge{display:inline-block;font-size:.85rem;font-weight:500;color:var(--color-muted);margin-left:.5rem}table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;border:1px solid #e6e3dc}th{text-align:left;padding:.7rem 1rem;background:#f7f6f3;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);font-weight:500;border-bottom:1px solid #e6e3dc}td{padding:.75rem 1rem;border-bottom:1px solid #f0ede6;font-size:.9rem}tr:last-child td{border-bottom:none}tfoot td{font-weight:600;border-top:1px solid #e6e3dc;background:#f7f6f3}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{background:#edeae3}th.sort-active{color:#1a1a1a}.sort-indicator{font-size:.7rem}th.num,td.num{text-align:right}td a{color:var(--color-link)}td a:hover{text-decoration:underline}.rule-group-header td{background:#f7f6f3;font-size:.8rem;color:#555;font-weight:500;padding:.45rem 1rem;border-bottom:1px solid #e6e3dc}.rule-group-add td{padding:.4rem 1rem;border-bottom:1px solid #e6e3dc}.search-input{margin-bottom:1rem;min-width:260px}.back-link{display:inline-block;font-size:.875rem;color:var(--color-muted);margin-bottom:1rem}.back-link:hover{color:#1a1a1a}.year-row{cursor:pointer;font-weight:500}.year-row:hover td{background:#f0ede6}.year-cell{padding-left:1rem}.expand-indicator{font-size:.75rem;color:var(--color-muted);margin-left:.25rem}.month-row td{background:#faf9f7;font-size:.875rem;color:#444}.month-cell{padding-left:2rem}.notes-preview{background:none;border:none;padding:0;font-size:.875rem;font-family:inherit;color:var(--color-link);cursor:pointer;text-align:left;line-height:1.4}.notes-preview:hover{text-decoration:underline;background:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:12px;padding:1.5rem;max-width:480px;width:90%;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;gap:1rem}.modal-body{white-space:pre-wrap;font-size:.9rem;line-height:1.6}.month-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.month-nav h1{flex:1;text-align:center;margin-bottom:0}.month-nav a{padding:.35rem .65rem;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:.875rem;color:#1a1a1a;line-height:1}.month-nav a:hover{background:#f7f6f3}.cal-grid{margin-bottom:1.5rem}.cal-cell{display:flex;flex-direction:column;min-height:2.5rem}.cal-day-num{font-size:.7rem;font-weight:500;color:var(--color-muted);line-height:1}.cal-count{font-size:1rem;font-weight:600;margin-top:.2rem}.cal-count-high{color:var(--color-negative)}.cal-weekend{background:#f7f6f3}.cal-today{background:#eef7f2}.cal-day-off{background:#eceae6}.cal-day-off .cal-day-num{text-decoration:line-through}.cal-week-total{text-align:right;font-size:1rem;font-weight:600;background:#f0ede6;border-left:1px solid #e6e3dc}.cal-grid th:last-child{text-align:right;background:#f0ede6;border-left:1px solid #e6e3dc}.monthly-section{margin-top:2rem}.current-month td{background:#eef7f2}.year-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.year-label{font-size:1rem;font-weight:600;min-width:3rem;text-align:center}section{margin-bottom:2rem}section h2{font-size:.95rem;font-weight:600;margin-bottom:.75rem}select,input[type=number],input[type=date],input[type=text],input[type=password]{padding:.45rem .7rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;font-family:inherit;background:#fff;color:#1a1a1a}select{min-width:220px}input[type=text],input[type=password]{min-width:320px}td input{padding:.3rem .5rem;border-radius:5px;font-size:.875rem;width:90px}td input[type=date]{width:140px}button{padding:.45rem 1rem;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:.875rem;font-family:inherit;color:#1a1a1a}button:hover{background:#f7f6f3}button:disabled{opacity:.5;cursor:default}.btn-primary{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.btn-primary:hover{background:#333}.btn-danger{color:#c0392b;border-color:#e6a89e}.btn-danger:hover{background:#fdf2f0}.row-actions{display:flex;gap:.5rem;align-items:center}.add-rule{margin-top:.75rem}.sync-label{margin-left:auto;font-size:.8rem;color:var(--color-muted)}.loading{color:var(--color-muted);padding:2rem}.error{color:#c0392b;background:#fdf2f0;border:1px solid #e6a89e;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem;font-size:.9rem}.empty{color:var(--color-muted);padding:1rem;text-align:center}.notice{background:#fffbec;border:1px solid #f0d060;border-radius:8px;padding:1rem 1.25rem;font-size:.9rem;margin-bottom:1.5rem}.save-row{display:flex;align-items:center;gap:1rem}.saved-msg{color:var(--color-revenue);font-size:.875rem}.unpriced-warning{margin-top:.75rem;padding:.6rem .9rem;background:#fff8ec;border:1px solid #f0c060;border-radius:6px;font-size:.85rem;color:#7a5800}.alias-list{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.alias-list li{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.merge-row{display:flex;align-items:center;gap:.75rem}.appt-past td{color:var(--color-muted)}.stacked-primary{display:block}.stacked-secondary{display:block;font-size:.8rem;color:var(--color-muted)}.text-muted{color:var(--color-muted)}.next-appointment{font-size:.9rem;color:#555;margin-top:-.75rem;margin-bottom:1.5rem}.nav-hamburger{display:none;background:none;border:none;font-size:1.4rem;line-height:1;padding:.25rem .35rem;cursor:pointer;color:#1a1a1a;margin-left:auto}.nav-hamburger:hover{background:none}.nav-menu{display:contents}@media (max-width: 640px){nav{position:relative;padding:.875rem 1rem}.nav-hamburger{display:block}.nav-menu{display:none}nav.nav-open .nav-menu{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid #e6e3dc;padding:.25rem 1.5rem .75rem;z-index:50}nav.nav-open .nav-menu a{font-size:1rem;padding:.75rem 0;display:flex;align-items:center;border-bottom:1px solid #f0ede6}nav.nav-open .nav-menu a:last-of-type{border-bottom:none}nav.nav-open .nav-menu .sync-label{display:block;padding:.75rem 0 0;font-size:.875rem}.page{padding:1rem}.cards{grid-template-columns:repeat(2,1fr);gap:.5rem}.cards>:nth-child(2){grid-column:1 / -1;order:-1}.card{padding:.75rem 1rem}.card h2{margin-bottom:.4rem}.card .count{font-size:1.5rem;margin-bottom:.1rem}.card .label{margin-bottom:.35rem}.hide-mobile{display:none!important}.search-input,input[type=text],input[type=password],select{min-width:0;width:100%}.notes-preview{display:block;max-width:8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-grid th:last-child,.cal-grid .cal-week-total{display:none}.cal-grid th,.cal-grid td{padding:.3rem .2rem}.cal-cell{min-height:1.75rem}}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.login-title{font-size:2rem;margin-bottom:2rem}.login-form{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:320px}.login-form input{padding:.5rem .75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px;width:100%;box-sizing:border-box}.login-form button{padding:.5rem;font-size:1rem;cursor:pointer}.login-error{color:var(--color-negative);margin:0;font-size:.9rem}
