*,*:before,*:after{box-sizing:border-box}:root{--onsy-ink: #2d2a26;--onsy-muted: #6b6560;--onsy-surface: #ffffff;--onsy-surface-2: #f3efe8;--onsy-border: #e8e2da;--onsy-line: color-mix(in srgb, #e8e2da 88%, #c4b8a8);--onsy-line-soft: color-mix(in srgb, #e8e2da 55%, transparent);--onsy-coral: #c4785a;--onsy-coral-deep: #a85f42;--onsy-accent: var(--onsy-coral);--onsy-sage: #7a9e7e;--onsy-sage-deep: #5f8563;--onsy-warm: #e8d5c4;--onsy-wash: color-mix(in srgb, #e8d5c4 55%, #f7f4ef);--onsy-bg: #f7f4ef;--onsy-overdue: #c45c4a;--onsy-danger: #c45c4a;--onsy-radius: 16px;--onsy-radius-sm: 10px;--onsy-radius-pill: 999px;--onsy-shadow: 0 10px 40px rgba(45, 42, 38, .07), 0 1px 0 rgba(255, 255, 255, .5) inset;--onsy-shadow-sm: 0 2px 12px rgba(45, 42, 38, .06);--onsy-app-bg: radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--onsy-sage) 12%, transparent), transparent 55%), radial-gradient(90% 70% at 100% 0%, color-mix(in srgb, var(--onsy-coral) 14%, transparent), transparent 50%), linear-gradient(180deg, color-mix(in srgb, var(--onsy-bg) 70%, #fff) 0%, var(--onsy-bg) 100%);--color-bg: var(--onsy-bg);--color-surface: var(--onsy-surface);--color-surface-2: var(--onsy-surface-2);--color-primary: var(--onsy-coral);--color-primary-dark: var(--onsy-coral-deep);--color-text: var(--onsy-ink);--color-text-muted: var(--onsy-muted);--color-border: var(--onsy-border);--color-accent: var(--onsy-sage);--color-warm: var(--onsy-warm);--color-overdue: var(--onsy-overdue);--color-danger: var(--onsy-danger);--radius: var(--onsy-radius);--shadow: var(--onsy-shadow-sm);font-family:Manrope,Segoe UI,system-ui,-apple-system,sans-serif;color-scheme:light}@keyframes onsy-page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes onsy-modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes onsy-fade-in{0%{opacity:0}to{opacity:1}}body{margin:0;background:var(--onsy-app-bg);background-attachment:fixed;color:var(--onsy-ink);line-height:1.5;font-family:Manrope,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{margin:0 0 .5rem;font-weight:700;letter-spacing:-.02em}a{color:var(--onsy-coral);text-decoration:none;transition:color .15s ease}a:hover{color:var(--onsy-coral-deep)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.62rem 1.1rem;border:none;border-radius:var(--onsy-radius-sm);background:linear-gradient(135deg,var(--onsy-coral) 0%,var(--onsy-coral-deep) 100%);color:#fff;font:inherit;font-size:.92rem;font-weight:700;cursor:pointer;box-shadow:0 6px 18px color-mix(in srgb,var(--onsy-coral) 28%,transparent);transition:transform .15s ease,box-shadow .2s ease,background .15s ease,border-color .15s ease,color .15s ease}button:hover:not(:disabled),.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 22px color-mix(in srgb,var(--onsy-coral) 38%,transparent)}button:active:not(:disabled),.btn:active:not(:disabled){transform:translateY(0)}button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}button.secondary,.btn.secondary{background:color-mix(in srgb,var(--onsy-surface) 55%,var(--onsy-warm));color:var(--onsy-ink);border:1px solid var(--onsy-line);box-shadow:none}button.secondary:hover:not(:disabled){background:color-mix(in srgb,var(--onsy-warm) 70%,var(--onsy-surface));border-color:color-mix(in srgb,var(--onsy-coral) 35%,var(--onsy-line));box-shadow:none;transform:none}button.ghost,.btn.ghost{background:transparent;color:var(--onsy-muted);border:1px solid var(--onsy-line);box-shadow:none}button.ghost:hover:not(:disabled){color:var(--onsy-ink);background:color-mix(in srgb,var(--onsy-surface) 70%,transparent);border-color:color-mix(in srgb,var(--onsy-ink) 18%,var(--onsy-line));box-shadow:none;transform:none}button.danger:not(.ghost),.btn.danger:not(.ghost){background:linear-gradient(135deg,#c45c4a,#a8483a);color:#fff;box-shadow:0 6px 18px color-mix(in srgb,#c45c4a 30%,transparent)}button.danger:not(.ghost):hover:not(:disabled){box-shadow:0 8px 22px color-mix(in srgb,#c45c4a 40%,transparent)}button.ghost.danger,.btn.ghost.danger,button.danger.ghost,.btn.danger.ghost{background:transparent!important;color:var(--onsy-danger)!important;border:1px solid color-mix(in srgb,var(--onsy-danger) 35%,var(--onsy-line));box-shadow:none!important}button.ghost.danger:hover:not(:disabled),.btn.ghost.danger:hover:not(:disabled){background:color-mix(in srgb,var(--onsy-danger) 8%,transparent)!important;color:var(--onsy-danger)!important;border-color:color-mix(in srgb,var(--onsy-danger) 55%,var(--onsy-line));transform:none}button.small{padding:.3rem .65rem;font-size:.8rem}input,select,textarea{width:100%;padding:.7rem .85rem;border:1px solid var(--onsy-line);border-radius:var(--onsy-radius-sm);font:inherit;font-size:.95rem;background:var(--onsy-surface);color:var(--onsy-ink);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:color-mix(in srgb,var(--onsy-coral) 55%,var(--onsy-line));box-shadow:0 0 0 3px color-mix(in srgb,var(--onsy-coral) 18%,transparent)}label{display:block;margin-bottom:.3rem;font-size:.82rem;font-weight:600;color:var(--onsy-muted);letter-spacing:.01em}.form-group{margin-bottom:1rem}.card{position:relative;background:var(--onsy-surface);border-radius:var(--onsy-radius);padding:1.25rem 1.35rem;box-shadow:var(--onsy-shadow);border:1px solid var(--onsy-line)}.badge{display:inline-block;padding:.18rem .55rem;border-radius:var(--onsy-radius-pill);font-size:.72rem;font-weight:700;letter-spacing:.02em;background:color-mix(in srgb,var(--onsy-warm) 75%,var(--onsy-surface));color:var(--onsy-ink);vertical-align:middle;margin-left:.35rem}.badge.low-stock{background:color-mix(in srgb,var(--onsy-coral) 16%,#fff);color:var(--onsy-coral-deep)}.badge.overdue{background:color-mix(in srgb,var(--onsy-danger) 14%,#fff);color:var(--onsy-danger)}.empty{text-align:center;padding:2.25rem 1.25rem;color:var(--onsy-muted);font-size:.95rem;border-radius:var(--onsy-radius-sm);background:color-mix(in srgb,var(--onsy-wash) 60%,transparent);border:1px dashed var(--onsy-line)}.error{color:var(--onsy-danger);font-size:.9rem;margin-top:.5rem;font-weight:600}.success{color:var(--onsy-sage-deep);font-size:.9rem;margin-top:.5rem;font-weight:600}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.85rem}.stat{text-align:center;padding:1.15rem 1rem;border-radius:var(--onsy-radius);background:linear-gradient(145deg,color-mix(in srgb,var(--onsy-surface) 80%,#fff),color-mix(in srgb,var(--onsy-warm) 45%,var(--onsy-surface)));border:1px solid var(--onsy-line);box-shadow:var(--onsy-shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.stat:hover{transform:translateY(-2px);box-shadow:var(--onsy-shadow)}.stat .value{font-size:1.85rem;font-weight:800;letter-spacing:-.03em;color:var(--onsy-coral-deep);line-height:1.15}.stat .label{margin-top:.25rem;font-size:.78rem;font-weight:600;color:var(--onsy-muted)}.list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem .65rem;margin:0 -.65rem;border-bottom:1px solid var(--onsy-line-soft);border-radius:var(--onsy-radius-sm);transition:background .15s ease}.list-item:last-child{border-bottom:none}.list-item:hover{background:color-mix(in srgb,var(--onsy-wash) 55%,transparent)}.list-item .meta{font-size:.8rem;color:var(--onsy-muted)}.page{animation:onsy-page-enter .4s ease both}.page-chrome{position:relative;margin-bottom:1.25rem;padding:1.15rem 1.35rem 1.05rem;border-radius:var(--onsy-radius);background:var(--onsy-surface);border:1px solid var(--onsy-line);box-shadow:var(--onsy-shadow);overflow:hidden}.page-chrome:before,.agenda-chrome:before,.auth-card:before,.setup-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--onsy-accent)}.page-kicker{margin:0 0 .15rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--onsy-sage)}.page-chrome h1,.page-title{margin:0;font-size:clamp(1.55rem,2.4vw,1.95rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--onsy-ink)}.page-subtitle,.subtitle{margin:.4rem 0 0;color:var(--onsy-muted);font-size:.95rem;line-height:1.45;font-weight:500}.page-chrome-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.page-chrome-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.section-card{margin-bottom:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;flex-wrap:wrap}.section-header h2,.section-header h3{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:-.02em}.section-header a{font-size:.85rem;font-weight:700}.modal-backdrop,.dialog-backdrop{position:fixed;inset:0;background:#2d2a266b;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;animation:onsy-fade-in .2s ease}.modal,.dialog,.confirm-modal{width:100%;max-width:420px;max-height:min(88vh,720px);overflow-y:auto;background:var(--onsy-surface);border-radius:var(--onsy-radius);padding:1.35rem 1.4rem;border:1px solid var(--onsy-line);box-shadow:0 24px 64px #2d2a2638;animation:onsy-modal-in .28s ease both}.modal h2,.dialog h2,.confirm-modal h2{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;margin-bottom:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem;flex-wrap:wrap}.auth-page,.setup-page,.privacy-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--onsy-app-bg);animation:onsy-page-enter .45s ease both}.auth-card,.setup-card{width:100%;max-width:420px;position:relative;overflow:hidden;padding:2rem 1.75rem 1.75rem}.auth-card h1,.setup-card h1{font-size:clamp(1.7rem,4vw,2.2rem);font-weight:800;letter-spacing:-.03em;color:var(--onsy-ink);margin-bottom:.25rem}.auth-card .tagline,.setup-card .intro{color:var(--onsy-muted);margin-bottom:1.5rem;font-weight:500;line-height:1.45}.auth-card>form>button[type=submit],.setup-card form>button[type=submit]{width:100%;margin-top:.35rem;padding:.75rem 1rem}.footer-link,.secondary-link,.privacy-note{display:block;text-align:center;margin-top:1.35rem;font-size:.9rem;color:var(--onsy-muted);font-weight:500}.auth-brand-kicker{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--onsy-sage)}@media (max-width: 600px){.modal-backdrop,.dialog-backdrop{align-items:flex-end;padding:0}.modal,.dialog,.confirm-modal{max-width:none;border-radius:var(--onsy-radius) var(--onsy-radius) 0 0;max-height:92vh;padding-bottom:max(1.35rem,env(safe-area-inset-bottom))}}
