:root{--cream: #FCF5F0;--espresso: #58382C;--caramel: #9E6E4A;--gold: #A37E42;--line: rgba(88,56,44,.12);--peach-bg: #FBF1E9;--error-bg: #F8E7E1;--error-text: #b5563f;--success-bg: #E4F1EA;--success-text: #2f7d57;--font-serif: "Playfair Display", "Italiana", serif;--font-serif-italic: "Cormorant Garamond", serif;--font-body: "Manrope", "Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font-body);background:var(--cream);color:var(--espresso);min-height:100vh}button{font-family:inherit;cursor:pointer;border:1px solid var(--espresso);background:transparent;color:var(--espresso);padding:.55rem 1rem;border-radius:6px;font-weight:500;letter-spacing:.02em;transition:background .15s,color .15s}button.primary{background:var(--espresso);color:var(--cream)}button.primary:hover{background:var(--caramel)}button.ghost{border-color:var(--line);background:transparent}button.ghost:hover{border-color:var(--espresso)}button:disabled{opacity:.5;cursor:not-allowed}button.link{border:0;background:transparent;padding:0;color:var(--caramel);text-decoration:underline}input,select,textarea{font-family:inherit;background:#fff;border:1px solid var(--line);color:var(--espresso);padding:.55rem .75rem;border-radius:6px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--espresso)}.eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--gold);font-weight:600}.serif{font-family:var(--font-serif)}.italic{font-family:var(--font-serif-italic);font-style:italic}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;background:var(--peach-bg);color:var(--espresso);font-size:.78rem;border:1px solid var(--line)}.chip.warn{background:#f7ead8}.chip.error{background:var(--error-bg);color:var(--error-text)}.chip.ok{background:var(--success-bg);color:var(--success-text)}.banner{background:var(--peach-bg);border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.banner.warn{background:var(--error-bg);color:var(--error-text);border-color:#b5563f4d}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.25rem;box-shadow:0 1px 2px #58382c0a}.stack>*+*{margin-top:.6rem}.row{display:flex;align-items:center;gap:.6rem}.grid{display:grid;gap:1rem}.modal-scrim{position:fixed;inset:0;background:#58382c52;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:30}.modal{background:var(--cream);border-radius:12px;border:1px solid var(--line);padding:1.5rem;max-width:720px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #00000026}.pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.7rem;background:#fff;border:1px solid var(--line)}.pill.zat{background:#dff2f0;border-color:#6f9b9b;color:#2b5a56}.dept-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;color:#fff;font-weight:500}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.calendar .dow{background:var(--peach-bg);color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:600;padding:.4rem;text-align:center}.calendar .day{background:var(--cream);padding:.4rem;min-height:82px;font-size:.8rem}.calendar .day.empty{background:#fff6}.calendar .day .num{font-weight:600;color:var(--espresso)}.calendar .day.past{opacity:.55}.calendar .day.taken{background:#f7dcd2}.calendar .day.selectable:hover{outline:2px solid var(--espresso);cursor:pointer}.calendar .day.selected{background:#e4f1ea;outline:2px solid var(--success-text)}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);padding:.5rem .6rem;text-align:left;font-size:.88rem}th{color:var(--gold);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:600}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.4rem 1rem;border:2px dashed rgba(88,56,44,.35);border-radius:10px;background:#ffffff80;cursor:pointer;transition:background .15s,border-color .15s}.dropzone:hover{background:#fff;border-color:var(--espresso)}
