:root{--bg: #111;--card: #1a1a1a;--text: #eee;--muted: #888;--accent: #7aa2ff;--today-bg: #1a2040;--error-bg: #3a1a1a;--error-text: #f88;--radius: clamp(8px, 1.5vw, 16px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}#root{height:100%}.screen-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;font-size:clamp(1rem,2.5vw,1.8rem);color:var(--muted)}.wrap{padding:clamp(16px,3vw,48px);display:flex;flex-direction:column;gap:clamp(12px,2vw,28px);min-height:100%}.header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.clock{font-size:clamp(2.2rem,7vw,6rem);font-weight:700;letter-spacing:.03em;line-height:1}.header-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25em;font-size:clamp(.75rem,1.5vw,1.1rem)}.muted{color:var(--muted)}.loading-label{color:var(--accent);font-size:clamp(.7rem,1.3vw,1rem)}.error-bar{background:var(--error-bg);color:var(--error-text);padding:.6em 1em;border-radius:var(--radius);font-size:clamp(.8rem,1.5vw,1.1rem)}.days{display:flex;flex-direction:column;gap:0}.day{padding:clamp(14px,2.5vw,28px) 0;border-bottom:1px solid #242424}.day.today{background:var(--today-bg);border-radius:var(--radius);border-bottom:none;padding:clamp(14px,2.5vw,28px);margin-bottom:clamp(4px,.8vw,10px)}.date-header{font-size:clamp(1.2rem,3.5vw,3.2rem);font-weight:700;margin-bottom:clamp(6px,1vw,14px);text-transform:capitalize}.today .date-header{color:var(--accent)}.events-list{display:flex;flex-direction:column;gap:clamp(2px,.6vw,8px);padding-left:clamp(8px,1.5vw,24px)}.event{display:flex;align-items:baseline;gap:clamp(8px,1.5vw,20px);cursor:pointer;padding:clamp(4px,.5vw,8px) clamp(6px,1vw,12px);border-radius:calc(var(--radius) / 2);transition:background .15s}.event:hover{background:#222}.event.soon{background:#1e2a1a;border:1px solid #4caf50;border-radius:calc(var(--radius) / 2);animation:pulse-soon 2s ease-in-out infinite}@keyframes pulse-soon{0%,to{box-shadow:0 0 #4caf5000}50%{box-shadow:0 0 0 6px #4caf5033}}.soon-badge{margin-left:auto;font-size:clamp(.65rem,1.2vw,1rem);font-weight:700;color:#4caf50;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.evt-time{font-size:clamp(1rem,3vw,2.6rem);font-weight:600;min-width:clamp(60px,8vw,130px);color:var(--muted);flex-shrink:0}.evt-title{font-size:clamp(1rem,3vw,2.8rem);font-weight:600;line-height:1.2}.empty{color:var(--muted);font-size:clamp(1rem,2vw,1.8rem);padding:2rem 0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;display:flex;align-items:center;justify-content:center;z-index:100;padding:clamp(16px,3vw,48px)}.modal-card{background:#181828;border:1px solid #2a2a4a;border-radius:calc(var(--radius) * 2);padding:clamp(24px,4vw,56px);max-width:min(700px,90vw);width:100%;position:relative}.modal-close{position:absolute;top:clamp(12px,1.5vw,20px);right:clamp(12px,1.5vw,20px);background:none;border:none;color:var(--muted);font-size:clamp(1.2rem,2.5vw,2rem);cursor:pointer;line-height:1;padding:4px}.modal-close:hover{color:var(--text)}.modal-cal-row{display:flex;align-items:center;gap:.5em;margin-bottom:clamp(8px,1.2vw,16px)}.modal-cal-dot{width:clamp(10px,1.2vw,14px);height:clamp(10px,1.2vw,14px);border-radius:50%;flex-shrink:0}.modal-cal-name{font-size:clamp(.8rem,1.5vw,1.2rem);font-weight:600}.modal-title{font-size:clamp(1.4rem,4vw,3.2rem);font-weight:700;line-height:1.2;margin-bottom:clamp(8px,1.2vw,16px)}.modal-date{font-size:clamp(.85rem,1.8vw,1.5rem);color:var(--muted);text-transform:capitalize}.modal-time{font-size:clamp(1rem,2.2vw,1.8rem);font-weight:600;margin-bottom:clamp(12px,2vw,24px)}.modal-location{font-size:clamp(.85rem,1.8vw,1.4rem);color:var(--muted);margin-bottom:.5em}.modal-description{font-size:clamp(.85rem,1.8vw,1.4rem);color:var(--muted);white-space:pre-wrap;border-top:1px solid #2a2a4a;padding-top:.75em;margin-top:.5em}.login-btn{background:var(--accent);color:#000;border:none;border-radius:var(--radius);padding:.75em 2em;font-size:clamp(1rem,2.5vw,1.6rem);font-weight:700;cursor:pointer;transition:opacity .15s}.login-btn:hover{opacity:.85}.spinner{width:clamp(32px,5vw,64px);height:clamp(32px,5vw,64px);border:4px solid #333;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
