:root{--wine:#7b2f45;--rose:#f7e9ed;--ink:#2b2527;--muted:#746b6e;--line:#eadde1;--white:#fff;--green:#237a57;--amber:#a46811;--red:#ad3446}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#fbf8f9;color:var(--ink)}a{color:var(--wine)}.topbar{height:64px;padding:0 max(18px,calc((100% - 1200px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.heart{color:var(--wine);font-size:42px}.heart.small{font-size:22px;margin-right:8px}.muted,.sync{color:var(--muted)}.container{max-width:1200px;margin:auto;padding:28px 18px 60px}.hero{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.hero h1{font-family:Georgia,serif;font-size:38px;margin:0 0 6px}.hero p{margin:0;color:var(--muted);max-width:690px}.actions{display:flex;gap:10px}.button,button{border:0;border-radius:10px;padding:11px 15px;font-weight:700;cursor:pointer;text-decoration:none;font:inherit}.primary{background:var(--wine);color:#fff}.secondary,.row-actions button{background:#f3edf0;color:var(--wine)}.danger{background:#fff0f1!important;color:var(--red)!important}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stats div,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 20px rgba(70,30,45,.04)}.stats div{padding:18px}.stats b{display:block;font-size:28px;color:var(--wine)}.stats span{color:var(--muted)}.stats small{display:block;margin-top:7px;color:var(--muted);font-size:12px}.stats .stat-confirmed b{color:var(--green)}.stats .stat-pending b{color:var(--amber)}.stats .stat-declined b{color:var(--red)}.panel{padding:20px;margin-bottom:20px}.panel h2{margin-top:0}.guest-form{display:grid;grid-template-columns:2fr .7fr 1fr 1fr 1.2fr;gap:12px;align-items:end}.guest-form .wide{grid-column:span 2}label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}input,select{width:100%;border:1px solid #d9cbd0;border-radius:10px;padding:12px;background:#fff;font:inherit;outline:none}input:focus,select:focus{border-color:var(--wine);box-shadow:0 0 0 3px #f4e4e9}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:15px}.toolbar input{max-width:380px}.toolbar select{max-width:190px}.toolbar .sync{margin-left:auto;font-size:13px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #f0e7ea;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:var(--muted)}td small{display:block;color:var(--muted);margin-top:3px}.badge{padding:5px 9px;border-radius:99px;font-size:12px;font-weight:800;white-space:nowrap}.badge.confirmed{background:#e6f5ed;color:var(--green)}.badge.pending{background:#fff3dc;color:var(--amber)}.badge.declined{background:#fdebee;color:var(--red)}.row-actions{display:flex;gap:6px}.row-actions button{padding:7px 9px;font-size:12px}.empty{text-align:center;padding:30px;color:var(--muted)}.alert{padding:11px 13px;border-radius:10px;margin:12px 0;background:#e8f5ee;color:var(--green)}.alert.error{background:#fdebee;color:var(--red)}dialog{border:0;border-radius:16px;width:min(720px,94vw);padding:0;box-shadow:0 20px 70px #0004}dialog::backdrop{background:#22151a99}.dialog-form{padding:22px;grid-template-columns:repeat(2,1fr)}.dialog-form h2,.dialog-actions{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#fff,#f2dfe5)}.login-card{width:min(410px,92vw);background:#fff;border:1px solid var(--line);padding:32px;border-radius:22px;text-align:center;box-shadow:0 25px 80px #6d2a4030}.login-card h1{font-family:Georgia,serif;margin:0;font-size:34px}.login-card p{color:var(--muted)}.login-card form{display:grid;gap:14px;text-align:left;margin:24px 0}.login-card button{width:100%}.login-card small{color:var(--muted)}
@media(max-width:850px){.guest-form{grid-template-columns:1fr 1fr}.guest-form .wide{grid-column:span 2}.stats{grid-template-columns:1fr 1fr}.hero{align-items:flex-start;flex-direction:column}.toolbar{flex-wrap:wrap}.toolbar input,.toolbar select{max-width:none}.toolbar .sync{width:100%;margin-left:0}.user{font-size:12px}table{min-width:0}thead{display:none}tbody,tr,td{display:block}tr{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:8px}td{border:0;padding:7px 9px;padding-left:38%;position:relative;min-height:34px}td:before{content:attr(data-label);position:absolute;left:9px;width:34%;font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:700}.row-actions{padding-left:9px}.row-actions:before{display:none}}
@media(max-width:520px){.guest-form,.dialog-form{grid-template-columns:1fr}.guest-form .wide,.dialog-form h2,.dialog-actions{grid-column:1}.stats{gap:8px}.stats div{padding:13px}.stats b{font-size:22px}.topbar{padding:0 12px}.muted{display:none}.actions{width:100%}.actions a{flex:1;text-align:center}.hero h1{font-size:32px}}

@media(max-width:800px){.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.stats{grid-template-columns:1fr 1fr}.stats div{padding:14px}.stats b{font-size:25px}}
.module-nav{display:flex;gap:8px;margin:18px 0 4px}.module-nav a{padding:10px 16px;border-radius:999px;text-decoration:none;background:#fff;border:1px solid #eadde3;color:#644653;font-weight:700}.module-nav a.active{background:#7f3552;color:#fff;border-color:#7f3552}.stat-progress b{color:#2563eb}.badge.progress{background:#dbeafe;color:#1d4ed8}.badge.done{background:#dcfce7;color:#166534}.priority{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:700;font-size:12px}.priority.normal{background:#f3f4f6;color:#374151}.priority.high{background:#ffedd5;color:#c2410c}.priority.urgent{background:#fee2e2;color:#b91c1c}.row-overdue{background:#fff1f2}.row-soon{background:#fffbeb}.danger-text,.soon-text{display:block;margin-top:5px;font-weight:700}.danger-text{color:#b91c1c}.soon-text{color:#b45309}.task-stats{grid-template-columns:repeat(6,minmax(120px,1fr))}@media(max-width:900px){.task-stats{grid-template-columns:repeat(2,1fr)}.module-nav{position:sticky;top:0;z-index:5;background:#f8f5f6;padding:8px 0}}

.cron-code{display:block;padding:14px;background:#201f23;color:#fff;border-radius:10px;overflow:auto;white-space:nowrap;margin:10px 0}.guest-form input[type=checkbox]{width:auto;margin-right:8px}.module-nav{flex-wrap:wrap}
