:root { --text:#23303b; --glass:rgba(255,255,255,.82); --primary:#d66a2b; --primary2:#f6aa4c; }
* { box-sizing:border-box; }
body { min-height:100vh; margin:0; font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--text); background-attachment:fixed; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.22; background:radial-gradient(circle at 15% 15%, white 0 2px, transparent 3px),radial-gradient(circle at 80% 25%, white 0 2px, transparent 3px); background-size:120px 120px,180px 180px; }
.season-autumn { --primary:#c96027; --primary2:#f2a73e; background:linear-gradient(135deg,#f8dfbb,#e79d63 45%,#9e5a3f 100%); }
.season-winter { --primary:#4d78c8; --primary2:#8ac7f2; background:linear-gradient(135deg,#dfeeff,#aac8ec 45%,#6c8fb5 100%); }
.season-spring { --primary:#5aa95e; --primary2:#ef92b9; background:linear-gradient(135deg,#e6f5d8,#f9d9e6 50%,#b7d9a3 100%); }
.season-summer { --primary:#e08a24; --primary2:#28a9c7; background:linear-gradient(135deg,#fff0b4,#73d2de 55%,#2b8fbd 100%); }
.glass-card { background:var(--glass); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.5); box-shadow:0 16px 50px rgba(58,44,35,.14); border-radius:24px; }
.app-shell { max-width:1380px; margin:0 auto; padding:24px; }
.topbar { padding:24px 28px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.topbar h1 { margin:2px 0 4px; font-size:clamp(1.8rem,3vw,2.6rem); }
.eyebrow { font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; opacity:.6; }
.season-label { opacity:.72; }
.user-box { display:flex; align-items:center; gap:12px; font-weight:700; }
.actions-row { display:flex; justify-content:space-between; align-items:center; gap:14px; margin:18px 0; flex-wrap:wrap; }
.btn-primary { background:linear-gradient(135deg,var(--primary),var(--primary2)); border:0; box-shadow:0 10px 22px rgba(0,0,0,.12); }
.btn-primary:hover { filter:brightness(.96); transform:translateY(-1px); }
.add-event-btn { border-radius:16px; padding:13px 22px; }
.legend { padding:12px 18px; display:flex; gap:16px; flex-wrap:wrap; }
.dot { display:inline-block; width:11px; height:11px; border-radius:999px; margin-right:6px; }
.dot.petr { background:#4f7cff; }.dot.partnerka{background:#d66bd4}.dot.shared{background:#39b980}
.calendar-card { padding:18px; }
#calendar { background:rgba(255,255,255,.5); border-radius:18px; padding:8px; }
.fc .fc-toolbar-title { font-size:1.4rem; font-weight:800; }
.fc .fc-button { background:#fff!important; color:#2a3944!important; border:0!important; box-shadow:0 4px 14px rgba(0,0,0,.08)!important; border-radius:12px!important; }
.fc .fc-button-active { background:var(--primary)!important; color:white!important; }
.fc-event { border-radius:9px; padding:2px 4px; border:0!important; }
.modern-modal { border:0; border-radius:24px; overflow:hidden; background:rgba(255,255,255,.96); }
.owner-choice { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.owner-btn { border:1px solid #d9dfe4; background:white; border-radius:14px; padding:12px 8px; font-weight:700; }
.owner-btn.active { border-color:var(--primary); box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent); }
.login-wrap { min-height:100vh; display:grid; place-items:center; padding:20px; }
.login-card { width:min(440px,100%); padding:34px; }
.season-icon { font-size:3rem; }
.login-card h1 { margin-top:8px; font-weight:800; }
@media(max-width:700px){ .app-shell{padding:12px}.topbar{padding:18px;align-items:flex-start}.user-box{flex-direction:column;align-items:flex-end}.legend{width:100%;justify-content:center}.calendar-card{padding:8px}.owner-choice{grid-template-columns:1fr}.fc .fc-toolbar{flex-wrap:wrap;gap:8px}.fc .fc-toolbar-chunk{display:flex;gap:4px}.fc .fc-toolbar-title{font-size:1.15rem} }
.weekday-choice { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.weekday-btn { border:1px solid #d9dfe4; background:#fff; border-radius:12px; padding:9px 4px; font-weight:800; font-size:.9rem; }
.weekday-btn.active { background:linear-gradient(135deg,var(--primary),var(--primary2)); color:#fff; border-color:transparent; box-shadow:0 6px 14px rgba(0,0,0,.10); }
.recurrence-extra { animation:fadeIn .16s ease-out; }
@keyframes fadeIn { from { opacity:0; transform:translateY(-3px); } to { opacity:1; transform:none; } }
@media(max-width:420px){ .weekday-choice{gap:4px}.weekday-btn{padding:8px 2px;font-size:.82rem} }
