:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--twitch-purple: #9146ff;--twitch-purple-dark: #772ce8;--twitch-purple-light: #a970ff;--twitch-bg: #0e0e10;--twitch-bg-light: #18181b;--twitch-bg-lighter: #1f1f23;--twitch-text: #efeff1;--twitch-text-muted: #adadb8;--twitch-success: #00f593;--twitch-error: #f04747}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--twitch-bg);color:var(--twitch-text);overflow:hidden}.app{min-height:100vh;height:100vh;position:relative;display:flex;justify-content:center;align-items:center;padding:2rem;overflow:hidden}.background-pattern{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,transparent 48%,var(--twitch-purple) 49%,var(--twitch-purple) 51%,transparent 52%),linear-gradient(-45deg,transparent 48%,var(--twitch-purple-dark) 49%,var(--twitch-purple-dark) 51%,transparent 52%);background-size:60px 60px;background-position:0 0,30px 30px;opacity:.03;animation:slidePattern 20s linear infinite;z-index:0}@keyframes slidePattern{0%{background-position:0 0,30px 30px}to{background-position:60px 60px,90px 90px}}.container{max-width:1600px;width:100%;height:100%;position:relative;z-index:1;display:flex;flex-direction:column;gap:1.5rem}.header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--twitch-bg-light);border-radius:12px;border:1px solid var(--twitch-bg-lighter);box-shadow:0 8px 32px #9146ff1a;flex-shrink:0}.title{font-size:2.5rem;font-weight:900;letter-spacing:-.02em}.gradient-text{background:linear-gradient(135deg,var(--twitch-purple) 0%,var(--twitch-purple-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}.status{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-weight:700;font-size:.875rem;letter-spacing:.05em;text-transform:uppercase}.status.connected{background:#00f5931a;color:var(--twitch-success);border:1px solid var(--twitch-success)}.status.disconnected{background:#f047471a;color:var(--twitch-error);border:1px solid var(--twitch-error)}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s ease-in-out infinite}.status.connected .status-dot{background:var(--twitch-success);box-shadow:0 0 8px var(--twitch-success)}.status.disconnected .status-dot{background:var(--twitch-error);box-shadow:0 0 8px var(--twitch-error)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.main-content{display:grid;grid-template-columns:450px 1fr;gap:1.5rem;flex:1;min-height:0}.timer-section{display:flex;flex-direction:column;gap:1.5rem}.timer-container{background:var(--twitch-bg-light);border-radius:16px;padding:2rem;border:2px solid var(--twitch-purple);box-shadow:0 8px 32px #9146ff33,inset 0 1px #ffffff0d;position:relative;overflow:hidden;flex-shrink:0}.timer-container:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(145,70,255,.1),transparent);animation:shine 3s infinite}@keyframes shine{0%{left:-100%}50%,to{left:100%}}.timer-label{font-size:.875rem;font-weight:700;letter-spacing:.1em;color:var(--twitch-text-muted);margin-bottom:1rem;text-transform:uppercase}.timer{font-size:4.5rem;font-weight:900;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,var(--twitch-purple) 0%,var(--twitch-purple-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:1.5rem;text-shadow:0 0 40px rgba(145,70,255,.5)}.timer-progress{height:8px;background:var(--twitch-bg-lighter);border-radius:4px;overflow:hidden;position:relative}.timer-progress-bar{height:100%;background:linear-gradient(90deg,var(--twitch-purple) 0%,var(--twitch-purple-light) 100%);border-radius:4px;transition:width 1s linear;box-shadow:0 0 20px #9146ff99;position:relative}.timer-progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:progressShine 2s infinite}@keyframes progressShine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.config-info{background:var(--twitch-bg-light);border-radius:12px;padding:1.5rem;border:1px solid var(--twitch-bg-lighter);display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0}.config-title{font-size:.875rem;font-weight:700;letter-spacing:.1em;color:var(--twitch-text-muted);text-transform:uppercase;margin-bottom:.5rem}.config-item{background:var(--twitch-bg-lighter);padding:1rem 1.25rem;border-radius:8px;border:1px solid transparent;display:flex;justify-content:space-between;align-items:center;font-size:1rem;transition:all .2s}.config-item:hover{border-color:var(--twitch-purple);background:#9146ff0d;transform:translate(4px)}.config-item span:first-child{color:var(--twitch-text);font-weight:600}.config-item span:last-child{color:var(--twitch-success);font-weight:700;font-variant-numeric:tabular-nums}.events-section{display:flex;flex-direction:column;min-height:0}.events-container{background:var(--twitch-bg-light);border-radius:12px;padding:1.5rem;border:1px solid var(--twitch-bg-lighter);box-shadow:0 4px 24px #0000004d;display:flex;flex-direction:column;flex:1;min-height:0}.events-title{font-size:.875rem;font-weight:700;letter-spacing:.1em;margin-bottom:1rem;color:var(--twitch-text-muted);text-transform:uppercase;flex-shrink:0}.events-list{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;padding-right:.5rem;flex:1;min-height:0}.events-list::-webkit-scrollbar{width:6px}.events-list::-webkit-scrollbar-track{background:var(--twitch-bg-lighter);border-radius:3px}.events-list::-webkit-scrollbar-thumb{background:var(--twitch-purple);border-radius:3px}.no-events{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--twitch-text-muted);flex:1}.no-events p{margin-top:1rem;font-size:.875rem}.pulse-loader{width:40px;height:40px;border-radius:50%;border:3px solid var(--twitch-purple);border-top-color:transparent;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.event-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--twitch-bg-lighter);border-radius:8px;border:1px solid transparent;transition:all .2s;animation:slideIn .3s ease-out;flex-shrink:0}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.event-item:hover{border-color:var(--twitch-purple);background:#9146ff0d;transform:translate(4px)}.event-icon{font-size:1.5rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--twitch-bg);border-radius:8px;flex-shrink:0}.event-content{flex:1;min-width:0}.event-type{font-weight:700;font-size:.875rem;color:var(--twitch-purple-light);text-transform:uppercase;letter-spacing:.05em}.event-user{font-size:.875rem;color:var(--twitch-text-muted);margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-time{font-size:.75rem;color:var(--twitch-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:var(--twitch-bg-light);border-radius:16px;border:2px solid var(--twitch-purple);box-shadow:0 8px 32px #9146ff33;text-align:center;max-width:600px;margin:auto}.error-icon{font-size:4rem;margin-bottom:1.5rem;opacity:.8}.access-denied h1{font-size:2rem;font-weight:900;background:linear-gradient(135deg,var(--twitch-purple) 0%,var(--twitch-purple-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem}.error-message{color:var(--twitch-error);font-size:1.1rem;font-weight:600;margin-bottom:1rem}.error-subtitle{color:var(--twitch-text-muted);font-size:.95rem;line-height:1.6;margin-bottom:2rem}.shop-redirect-btn{background:linear-gradient(135deg,var(--twitch-purple) 0%,var(--twitch-purple-light) 100%);color:#fff;border:none;padding:1rem 2.5rem;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #9146ff4d;text-transform:uppercase;letter-spacing:.05em}.shop-redirect-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #9146ff80}.shop-redirect-btn:active{transform:translateY(0)}.control-panel{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--twitch-bg-light);border-radius:12px;margin-bottom:1.5rem;border:1px solid rgba(255,255,255,.1)}.control-buttons{display:flex;gap:1rem;flex-wrap:wrap}.control-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0003}.control-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.start-btn{background:linear-gradient(135deg,#00c853,#00e676);color:#fff}.pause-btn{background:linear-gradient(135deg,#ff9800,#ffb74d);color:#fff}.stop-btn{background:linear-gradient(135deg,#f44336,#e57373);color:#fff}.settings-btn{background:linear-gradient(135deg,#2196f3,#64b5f6);color:#fff}.session-status{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:#fffc}.status-badge{padding:.5rem 1rem;border-radius:6px;font-weight:700;font-size:.875rem}.status-active{background:linear-gradient(135deg,#00c853,#00e676);color:#fff}.status-paused{background:linear-gradient(135deg,#ff9800,#ffb74d);color:#fff}.status-ended{background:linear-gradient(135deg,#757575,#9e9e9e);color:#fff}.settings-panel{background:var(--twitch-bg-light);border-radius:12px;padding:2rem;margin-bottom:1.5rem;border:1px solid rgba(255,255,255,.1);animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.settings-title{font-size:1.5rem;font-weight:700;color:var(--twitch-purple);margin-bottom:1.5rem;text-align:center}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.setting-item{display:flex;flex-direction:column;gap:.5rem}.setting-item label{font-size:.875rem;font-weight:600;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.setting-item input{padding:.75rem;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:1rem;transition:all .3s ease}.setting-item input:focus{outline:none;border-color:var(--twitch-purple);box-shadow:0 0 0 3px #9146ff33}.settings-actions{display:flex;gap:1rem;justify-content:center}.settings-save-btn,.settings-cancel-btn{padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.settings-save-btn{background:linear-gradient(135deg,var(--twitch-purple) 0%,var(--twitch-purple-light) 100%);color:#fff;box-shadow:0 4px 16px #9146ff4d}.settings-save-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #9146ff80}.settings-cancel-btn{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.settings-cancel-btn:hover{background:#ffffff26}@media(max-width:1200px){.main-content{grid-template-columns:1fr;grid-template-rows:auto 1fr}.timer-section{flex-direction:row;gap:1rem}.timer-container{flex:1}.config-info{flex:1;min-width:300px}}@media(max-width:768px){.app{padding:1rem}.header{flex-direction:column;gap:1rem;text-align:center}.title{font-size:2rem}.timer-section{flex-direction:column}.timer{font-size:3rem}.timer-container{padding:1.5rem}}
