*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;padding:40px 20px 0;transition:background-color .3s ease;display:flex;flex-direction:column}.container{max-width:1200px;margin:0 auto;flex:1;display:flex;flex-direction:column}header{text-align:center;margin-bottom:40px}header h1{font-size:2.5rem;margin-bottom:12px;font-weight:600}header p{font-size:1.1rem;opacity:.8}.token-section{margin-bottom:24px;padding:16px;border-radius:6px;background-color:#afb8c10d}.token-controls{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.token-toggle,.clear-token{padding:8px 16px;border:1px solid;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.token-toggle:hover,.clear-token:hover{opacity:.8}.token-input-group{margin-top:12px;display:flex;flex-direction:column;gap:8px}.token-input-group input{padding:10px 16px;border:2px solid;border-radius:6px;font-size:14px;font-family:Courier New,monospace;outline:none;transition:all .2s ease}.token-input-group input:focus{border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.token-input-group small{font-size:12px;text-align:center}.controls{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap;justify-content:center;align-items:center}.input-group{display:flex;gap:8px;flex:1;max-width:400px}.input-group input{flex:1;padding:10px 16px;border:2px solid;border-radius:6px;font-size:14px;outline:none;transition:all .2s ease}.input-group input:focus{border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}button{padding:10px 20px;background-color:#0969da;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease;white-space:nowrap}button:hover{background-color:#0860ca}button:active{transform:translateY(1px)}.theme-toggle button{background-color:#6e7781}.theme-toggle button:hover{background-color:#57606a}.users-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;padding:16px;background-color:#afb8c11a;border-radius:6px;align-items:center}.users-list strong{margin-right:8px}.user-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background-color:#0969da;color:#fff;border-radius:20px;font-size:14px}.user-tag .remove-btn{background:transparent;color:#fff;padding:0;width:20px;height:20px;border-radius:50%;font-size:18px;line-height:18px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.user-tag .remove-btn:hover{background-color:#fff3}.calendar-wrapper{display:flex;justify-content:center;align-items:flex-start;margin:40px 0;overflow-x:auto;padding:20px;flex:1}.empty-state{text-align:center;padding:60px 20px;font-size:1.1rem}.loading{text-align:center;padding:40px}.spinner{border:3px solid rgba(0,0,0,.1);border-top-color:#0969da;border-radius:50%;width:40px;height:40px;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}footer{text-align:center;margin-top:auto;padding:40px 20px;border-top:1px solid rgba(175,184,193,.2);width:100%}footer p{margin-bottom:8px;font-size:14px}footer .note{font-size:12px;font-style:italic;opacity:.7}.mode-selector{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.mode-selector button{padding:10px 24px;border:2px solid transparent;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.mode-selector button:hover{opacity:.9}.info-box{padding:12px 20px;border:1px solid;border-radius:6px;margin-bottom:24px;text-align:center;font-size:14px;font-weight:500}@media (max-width: 768px){header h1{font-size:2rem}.controls{flex-direction:column}.input-group{max-width:100%;width:100%}.calendar-wrapper{overflow-x:scroll}.mode-selector{flex-direction:column;width:100%;max-width:400px;margin-left:auto;margin-right:auto}.mode-selector button{width:100%}}.skeleton-shimmer{position:relative;overflow:hidden}.skeleton-shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff1a 20%,#fff3 60%,#fff0);animation:shimmer 2s infinite;pointer-events:none}@keyframes shimmer{to{transform:translate(100%)}}
