body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#root{min-height:100vh;width:100%}.app-layout{flex-direction:row}.content-area{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;height:100vh;margin-left:60px;max-width:calc(100vw - 60px);overflow-x:hidden;width:calc(100vw - 60px)}.alerts-widgets-area{background:#f5f5f5;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #00000014;box-sizing:border-box;left:60px;position:fixed;right:0;top:0;width:calc(100% - 60px);z-index:1001}.main-content{-ms-overflow-style:none;box-sizing:border-box;height:calc(100vh - 60px);height:calc(100vh - var(--alerts-height, 60px));margin-top:60px;margin-top:var(--alerts-height,60px);overflow-y:scroll;scrollbar-width:none}.main-content.no-alerts-bar{height:100vh;margin-top:0}.main-content::-webkit-scrollbar{display:none}body,html{overflow-x:hidden;position:relative;width:100%}body{background:#faf9f5;color:#141413;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0;min-height:100vh;padding:0}.chat-container{border-radius:16px;display:flex;flex-direction:column;margin:0 auto;max-width:800px;min-height:calc(100vh - 80px);padding-top:0;position:relative;width:100%}.user-profile-floating{position:fixed;right:12px;top:12px;z-index:1010}.mobile-menu-toggle-floating{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:none;flex-direction:column;gap:3px;height:40px;justify-content:center;left:72px;padding:8px;position:fixed;top:8px;width:40px;z-index:1002}.mobile-menu-toggle-floating .hamburger-line{background-color:#333;border-radius:1px;height:2px;transition:all .3s ease;width:18px}.chat-header{background:#fff;border-bottom:1px solid #eee;box-shadow:0 2px 4px #00000014;box-sizing:border-box;gap:1.5rem;justify-content:space-between;left:60px;padding:12px;position:fixed;right:0;top:0;width:calc(100% - 60px);z-index:1001}.chat-header,.header-left{align-items:center;display:flex}.header-left{gap:1rem}.header-right{align-items:center;display:flex}.mobile-menu-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;height:24px;justify-content:space-around;padding:0;width:24px}.hamburger-line{background-color:#333;border-radius:2px;height:2px;transition:.3s;width:100%}.mobile-sidebar-overlay{background-color:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:1998}.workflow-selector{align-items:center;display:flex;flex:1 1;gap:10px}.workflow-selector label{color:#7a869a;font-size:1rem;font-weight:500}.workflow-selector select{background:#fdfcfa;border:1.5px solid #dbe2ea;border-radius:8px;color:#222;flex-grow:1;font-size:15px;font-weight:500;padding:8px 12px}.messages{background:#faf9f5;border:none;flex:1 1 auto;margin:0 auto;max-width:800px;padding-bottom:160px;width:100%}.load-more-container{padding:10px 0 15px;text-align:center}.load-more-button{background:#667eea;border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.load-more-button:hover:not(:disabled){background:#5a67d8;box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.load-more-button:disabled{background:#a0aec0;cursor:not-allowed;opacity:.7;transform:none}.prompt-suggestions-panel{background:#fff;border:1px solid #e2e8f0;border-bottom:none;border-radius:8px 8px 0 0;box-sizing:border-box;overflow:hidden;transition:all .3s ease;width:100%}.prompt-suggestions-panel.text-input-hidden{border-bottom:1px solid #e2e8f0;border-radius:8px;bottom:0;box-shadow:0 2px 10px #0000001a}.panel-tabs{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;margin:0;padding:0}.tab-btn{align-items:center;background:#fff;border:none;border-bottom:2px solid #0000;color:#1e293b;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:6px 10px;position:relative;transition:all .2s ease}.tab-btn:hover{background:#edf2f7;color:#475569}.tab-btn.active,.tab-btn.selected{color:#1e293b;font-weight:600}.tab-btn.active{background:#fff;border-bottom-color:#3b82f6}.tab-indicator{align-items:center;display:inline-flex;font-size:16px;line-height:1}.suggestions-available-indicator{animation:pulse-subtle 2s infinite;color:#10b981}.workflow-active-indicator{color:#3b82f6}@keyframes pulse-subtle{0%,to{opacity:.6}50%{opacity:1}}.panel-content{background:#fff;max-height:300px;overflow-y:auto;padding:16px 18px;transition:all .3s ease}.panel-content.hide{max-height:0;opacity:0;overflow:hidden;padding:0 18px}.panel-content.show{max-height:300px;opacity:1;padding:16px 18px}.workflow-tab{padding:0}.workflow-selector-panel{align-items:center;display:flex;gap:12px;padding:4px 0}.workflow-selector-panel select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#1e293b;font-size:14px;font-weight:500;padding:8px 12px;width:100%}.suggestions-header{color:#666;font-size:13px;font-weight:500;margin-bottom:12px;text-align:left}.suggestions-list{display:flex;flex-wrap:wrap;gap:8px;max-height:200px;overflow-y:auto}.suggestion-item{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:20px;color:#4a5568;cursor:pointer;display:flex;font-size:13px;gap:8px;max-width:250px;overflow:hidden;padding:8px 14px;position:relative;transition:all .2s ease}.suggestion-item:hover{background:#edf2f7;border-color:#cbd5e0;box-shadow:0 4px 8px #0000001f;color:#2d3748;transform:translateY(-1px)}.suggestion-item:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.suggestion-text{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-count{background:#cbd5e0;border-radius:12px;color:#4a5568;font-size:10px;font-weight:600;line-height:1.2;min-width:20px;padding:2px 8px;text-align:center}.input-panel{bottom:0;display:block;left:50%;margin-left:30px;max-width:800px;position:fixed;transform:translateX(-50%);width:calc(100% - 60px);z-index:1000}.input-area{background:#f8fafc;border-top:1px solid #eee;box-sizing:border-box;padding:12px}.standalone-mic-container{align-items:center;bottom:78px;display:flex;flex-direction:column;pointer-events:none;position:fixed;right:30px;z-index:1000}#userInput{background:#fdfcfa;border:1px solid #d7d6d3;border-radius:0;border-radius:16px;box-sizing:border-box;color:#222;font-family:inherit;font-size:17px;min-height:48px;outline:none;padding:14px 16px 18px;resize:vertical;width:100%}#userInput:focus{background:#fdfcfa;border-color:#007bff;box-shadow:0 0 0 2px #007bff26}#sendBtn{align-items:center;background:#111;border:none;border:1.5px solid #dbe2ea;border-radius:50%;border-radius:24px;bottom:30px;box-shadow:0 2px 8px #00000014;color:#fdfcfa;color:#3b3b3b;cursor:pointer;display:flex;font-size:20px;font-size:17px;font-weight:700;font-weight:600;height:38px;height:48px;justify-content:center;overflow:hidden;position:absolute;right:18px;text-align:center;transition:background .2s,color .2s;width:38px;width:48px;z-index:2}#sendBtn:hover{background:#e6eaf0;color:#222}#sendBtn:disabled{background:#bdbdbd;color:#aaa;cursor:not-allowed}.input-buttons{align-items:center;bottom:30px;display:flex;gap:8px;position:absolute;right:18px;z-index:2}.mic-btn{pointer-events:auto}@keyframes pulse-red{0%{box-shadow:0 0 0 0 #ff4444b3}70%{box-shadow:0 0 0 10px #f440}to{box-shadow:0 0 0 0 #f440}}.input-buttons #sendBtn{margin:0;position:static}.mic-btn{align-items:center;background:#f8fafc;border:1.5px solid #dbe2ea;border-radius:24px;bottom:-48px;box-shadow:0 2px 8px #00000014;color:#666;cursor:pointer;display:flex;font-size:17px;font-weight:600;height:48px;justify-content:center;overflow:hidden;position:absolute;right:-12px;transition:all .2s ease;width:48px;z-index:2}.mic-btn:hover{background:#e6eaf0;border-color:#c4cfd9}.mic-btn:disabled{background:#f0f0f0;border-color:#e0e0e0;color:#ccc;cursor:not-allowed}.mic-btn.listening{animation:pulse-red 1.5s ease-in-out infinite;background:#fff5f5;border-color:#f44}#userInput.gemini-style{animation:gemini-glow 2s ease-in-out infinite;background:linear-gradient(135deg,#f8f9fa,#e8f0fe);border:2px solid #4285f4;border-radius:16px;box-shadow:0 2px 8px #4285f426;color:#1a73e8;font-size:16px;padding:16px 20px}@keyframes gemini-glow{0%{box-shadow:0 2px 8px #4285f426}50%{box-shadow:0 4px 16px #4285f440}to{box-shadow:0 2px 8px #4285f426}}select{background:#faf9f5;border:1.5px solid #dbe2ea;border-radius:8px;font-size:15px;padding:9px}.message{border-radius:10px;font-size:16px;margin-bottom:8px;margin-left:8px;margin-right:8px;max-width:100%;padding:13px 14px;position:relative}.message,.user-message{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.user-message{background:#f0eee6;color:#141413;margin-left:20%;white-space:pre-wrap}.assistant-message{padding-left:0;padding-right:0}.progress-update{animation:pulse 1s ease-in-out;background:#fdf6e3;border:1.5px solid #f7e9c6;color:#b48a00;font-size:15px;margin-bottom:6px;padding:6px 14px}.progress-complete{background:#eafbe7;border:1.5px solid #c7eac2;color:#2d7a46}.progress-error{background:#fff0f0;border:1.5px solid #f5c6cb;color:#c0392b}.progress-waiting{background:#eaf3fb;border:1.5px solid #b3d9ff;color:#06c}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.progress-complete,.progress-error,.progress-update,.progress-waiting{overflow:hidden}.progress-complete a,.progress-error a,.progress-link,.progress-update a,.progress-waiting a{word-wrap:break-word;color:inherit;display:inline;max-width:100%;overflow-wrap:break-word;text-decoration:underline;-webkit-text-decoration-color:#0000004d;text-decoration-color:#0000004d;transition:all .2s ease;white-space:normal;word-break:break-word}.progress-complete a:hover,.progress-error a:hover,.progress-link:hover,.progress-update a:hover,.progress-waiting a:hover{opacity:.8;-webkit-text-decoration-color:inherit;text-decoration-color:inherit}.progress-group{background:#fdf6e3;border:1.5px solid #f7e9c6;color:#b48a00;font-size:15px;margin-bottom:6px;overflow:hidden;padding:6px 14px}.progress-group.progress-complete{background:#eafbe7;border:1.5px solid #c7eac2;color:#2d7a46}.progress-group.progress-error{background:#fff0f0;border:1.5px solid #f5c6cb;color:#c0392b}.progress-group.progress-waiting{background:#eaf3fb;border:1.5px solid #b3d9ff;color:#06c}.progress-latest{transition:background-color .2s ease}.progress-latest:hover{background-color:#0000000d;border-radius:4px}.progress-toggle{align-items:center;display:flex;font-size:11px;gap:4px;opacity:.7;-webkit-user-select:none;user-select:none}.progress-count{font-weight:500}.progress-arrow{font-size:10px;transition:transform .2s ease}.progress-history{border-bottom:1px solid #0000001a;margin-bottom:8px;padding-bottom:8px}.progress-history-item{margin-bottom:4px;padding:2px 0}.progress-history-item:last-child{margin-bottom:0}.timestamp{color:#888;font-size:11px;margin-right:8px;margin-top:0}.workflow-type{color:#5a67d8;font-weight:500}.message-time{color:#1e1b1b;display:inline-block;font-size:12px;font-weight:500;min-width:55px;text-align:left}.waiting-for-input{background-color:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px;margin-top:8px;padding:8px 12px}.waiting-indicator{color:#92400e;font-size:12px;font-weight:500}.step-indicator{color:#7a869a;font-weight:700;margin-bottom:5px}.message p{margin-bottom:2px;margin-top:0;white-space:pre-line}.message a{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}@keyframes spin{to{transform:rotate(1turn)}}.event-list{margin-bottom:8px;position:relative;top:-8px}.event-summary{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:8px;padding:12px}.event-summary h3{color:#2c3e50;font-size:14px;margin:0 0 8px}.event-summary p{color:#6c757d;font-size:14px;margin:0}.events{display:flex;flex-direction:column;gap:8px}.event-card{background:#fdfcfa;border:1px solid #ddd;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:12px;transition:box-shadow .2s ease}.event-card:hover{box-shadow:0 4px 8px #0000001a}.event-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.event-title{font-size:14px;margin:0}.registered-badge{background:#28a745;border-radius:4px;color:#fff;font-size:12px;font-weight:500;padding:4px 8px}.event-details{margin-bottom:12px}.event-info{display:flex;flex-direction:row;gap:6px}.event-date,.event-organizer{align-items:center;color:#6c757d;display:flex;font-size:14px;gap:6px}.registered-badge{align-items:center;display:flex;gap:4px}.event-actions{display:flex;flex-wrap:wrap;gap:8px}.action-button{border:none;border-radius:20px;cursor:pointer;font-size:12px;font-weight:500;padding:6px 16px;transition:all .2s ease}.action-button.primary{background:#faf9f5;border:1px solid #ddd;color:#141413}.action-button.primary:hover{background:#f0eee6;border-color:#ccc}.action-button.secondary{background:#faf9f5;border:1px solid #ddd;color:#141413}.action-button.secondary:hover{background:#f0eee6;border-color:#ccc}.action-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.structured-content{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:8px 0;padding:12px}.structured-content pre{word-wrap:break-word;color:#495057;font-size:12px;margin:0;white-space:pre-wrap}.quick-actions{margin:12px 0}.quick-actions h4{color:#2c3e50;font-size:14px;margin:0 0 12px}.actions-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.quick-action-button{background:#fdfcfa;border:1px solid #ddd;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px;text-align:left;transition:all .2s ease}.quick-action-button:hover{border-color:#007bff;box-shadow:0 2px 4px #007bff1a}.action-label{color:#2c3e50;font-size:14px;font-weight:600}.action-description{color:#6c757d;font-size:12px}.data-table{background:#fdfcfa;border:1px solid #ddd;border-radius:12px;box-shadow:0 2px 4px #0000000d;margin:12px 0;padding:16px}.table-header h3{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 12px}.event-info{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-bottom:16px;padding:12px}.event-main-info{display:flex;flex-direction:column;gap:8px}.event-title{color:#2c3e50;font-size:16px;font-weight:600;margin-bottom:4px}.event-details,.event-venue{color:#495057;display:flex;flex-wrap:wrap;font-size:14px;gap:16px}.event-details span,.event-venue span{align-items:center;display:flex;gap:4px}.table-summary{background:#e9ecef;border-radius:6px;color:#6c757d;display:flex;font-size:14px;gap:16px;margin-bottom:16px;padding:8px 12px}.table-summary span{align-items:center;display:flex;gap:4px}.table-content{display:flex;flex-direction:column;gap:6px}.table-header-row{grid-gap:12px;align-items:center;background:#e9ecef;border-bottom:2px solid #dee2e6;border-radius:8px;color:#495057;display:grid;font-size:14px;font-weight:600;gap:12px;grid-template-columns:60px 1fr 80px 120px;margin-bottom:4px;padding:10px 12px}.table-header-cell{align-items:center;display:flex;min-height:20px}.table-header-cell.left{justify-content:flex-start}.table-header-cell.center{justify-content:center}.table-header-cell.right{justify-content:flex-end}.table-row{grid-gap:12px;align-items:center;background:#f8f9fa;border-radius:8px;display:grid;font-size:14px;gap:12px;grid-template-columns:60px 1fr 80px 120px;padding:8px 12px;transition:background-color .2s ease}.table-row:hover{background:#e9ecef}.table-row.highlighted{background:#e8f4f8;border:1px solid #17a2b8}.table-row.highlighted:hover{background:#d1ecf1}.table-cell{align-items:center;display:flex;min-height:20px;overflow:hidden}.table-cell.left{justify-content:flex-start}.table-cell.center{justify-content:center}.table-cell.right{justify-content:flex-end}.player-info{align-items:flex-start;display:flex;flex-direction:column}.player-name{align-items:center;color:#2c3e50;display:flex;font-weight:500}.own-team-indicator{color:#17a2b8;font-size:16px}.membership-number{color:#6c757d;font-size:12px}.record{align-items:flex-end;display:flex;flex-direction:column;text-align:right}.record-text{color:#2c3e50;font-weight:500}.win-percentage{color:#6c757d;font-size:12px}.journey-plan{background:#fff;border:1px solid #e1e8ed;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:8px 0;padding:20px}.journey-summary{border-bottom:2px solid #f0f8ff;margin-bottom:16px;padding-bottom:8px}.journey-summary h3{color:#2c3e50;font-size:1.4em;margin:0 0 12px}.journey-route{align-items:center;display:flex;font-size:1.1em;gap:12px;margin:12px 0}.route-point{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;color:#34495e;font-weight:500;padding:6px 12px}.route-arrow{color:#007bff;font-size:1.2em;font-weight:700}.route-point{align-items:center;display:flex;gap:8px}.route-icon{display:none;font-size:1.1em}.route-text{flex:1 1}.journey-timing{color:#495057;display:flex;flex-direction:column;font-size:.95em;gap:6px;margin-top:12px}.journey-timing span{padding:4px 0}.transport-options{margin:16px 0}.transport-options h4{color:#2c3e50;font-size:1.2em;margin:0 0 8px}.transport-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.transport-card{background:#f8f9fa;border:2px solid #dee2e6;border-radius:12px;padding:12px;transition:all .3s ease}.transport-card.recommended{background:#e8f5e8;border-color:#28a745;box-shadow:0 2px 8px #28a74533}.transport-card.unavailable{background:#f8f9fa;border-color:#dc3545;opacity:.7}.transport-header{align-items:center;display:flex;gap:8px;margin-bottom:12px}.transport-icon{font-size:1.5em}.transport-title{color:#2c3e50;font-size:1.1em;font-weight:600}.recommended-badge{background:#28a745;border-radius:12px;color:#fff;font-size:.8em;font-weight:500;margin-left:auto;padding:3px 8px}.transport-details{display:flex;flex-direction:column;gap:8px}.transport-time{display:flex;flex-direction:column;font-size:.95em;gap:4px}.transport-info{align-items:center;border-top:1px solid #e9ecef;display:flex;flex-direction:row;font-size:.95em;gap:16px;justify-content:space-between;padding:8px 0 0}.transport-info span{align-items:center;color:#495057;display:flex;font-weight:500;white-space:nowrap}.transport-time span{color:#495057}.bus-stop,.escooter-notes{background:#fff;border-radius:6px;color:#6c757d;font-size:.9em;margin-top:0;padding:8px}.transport-unavailable{color:#dc3545;font-style:italic;padding:20px;text-align:center}.weather-info{background:#f0f8ff;border:1px solid #e1e8ed;border-radius:12px;margin:16px 0;padding:8px}.weather-info h4{color:#2c3e50;font-size:1.2em;margin:0 0 8px}.weather-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.weather-location{background:#fff;border:1px solid #dee2e6;border-radius:8px;display:flex;flex-direction:column;gap:4px;padding:12px}.location-label{color:#2c3e50;font-size:.9em;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.weather-desc{color:#495057;font-size:1.1em;font-weight:500}.weather-temp{color:#007bff;font-size:1.3em;font-weight:600}.weather-wind{color:#6c757d;font-size:.9em}.recommendation{background:#fff8dc;border:1px solid gold;border-radius:12px;margin:16px 0;padding:8px}.recommendation h4{color:#2c3e50;font-size:1.2em;margin:0 0 12px}.recommendation-reason{color:#495057;font-size:1em;line-height:1.4;margin:0 0 12px}.not-recommended{color:#6c757d;font-size:.9em;margin-top:12px}.not-recommended ul{margin:8px 0 0 20px;padding:0}.not-recommended li{line-height:1.3;margin-bottom:4px}.journey-actions{border-top:1px solid #dee2e6;margin:16px 0 0;padding-top:8px}.journey-actions h4{color:#2c3e50;font-size:1.1em;margin:0 0 8px}.recurrence-info{border-top:1px solid #dee2e6;margin-top:8px;padding-top:8px}.recurrence-info details summary{color:#495057;cursor:pointer;font-weight:500;padding:8px 0}.recurrence-info pre{background:#f8f9fa;border-radius:6px;color:#495057;font-size:.85em;margin:8px 0 0;overflow-x:auto;padding:12px}@media (max-width:768px){.journey-plan{border-radius:8px;margin:4px 0;padding:16px}.journey-summary h3{font-size:1.2em;line-height:1.3}.journey-route{align-items:stretch;flex-direction:column;font-size:1em;gap:8px}.route-point{font-size:.95em;justify-content:flex-start;padding:8px 12px;text-align:left}.route-icon{display:inline-block;font-size:1em}.route-arrow{display:none}.journey-timing{font-size:.9em;gap:4px}.transport-grid{gap:12px;grid-template-columns:1fr}.transport-card{padding:16px}.transport-header{flex-wrap:wrap;gap:8px}.transport-title{font-size:1em}.recommended-badge{font-size:.75em;padding:2px 6px}.transport-details{gap:8px}.transport-time{grid-gap:8px;display:grid;font-size:.9em;gap:8px;grid-template-columns:1fr 1fr}.transport-info{align-items:center;display:flex;flex-direction:row;font-size:.9em;gap:12px;justify-content:space-between;padding:6px 0}.transport-info span{font-weight:500;white-space:nowrap}.weather-grid{gap:12px;grid-template-columns:1fr}.weather-location{padding:16px}.weather-temp{font-size:1.4em}.recommendation{padding:12px}.recommendation-reason{font-size:.95em;line-height:1.5}.not-recommended{font-size:.85em}.not-recommended ul{margin-left:16px}.actions-grid{gap:8px;grid-template-columns:1fr}.action-button{font-size:.9em;padding:12px 16px}}@media (max-width:480px){.journey-plan{margin:2px 0;padding:12px}.journey-summary h3{font-size:1.1em}.route-point{font-size:.9em;padding:6px 8px;text-align:left}.journey-timing{font-size:.85em}.transport-card{padding:12px}.transport-icon{font-size:1.3em}.transport-title{font-size:.95em}.transport-time{font-size:.85em;gap:6px;grid-template-columns:1fr}.transport-info{flex-direction:row;font-size:.85em;gap:8px;justify-content:space-between;padding:4px 0}.weather-location{padding:12px}.weather-temp{font-size:1.2em}.location-label{font-size:.8em}.recommendation{padding:8px}.recommendation h4{font-size:1.1em}.recommendation-reason{font-size:.9em}.action-button{font-size:.85em;padding:10px 12px}.bus-stop,.escooter-notes{font-size:.8em;padding:6px}}@media (max-width:768px){.action-button{min-height:44px;touch-action:manipulation}.recurrence-info details summary{align-items:center;display:flex;min-height:44px}}.journey-plan *{box-sizing:border-box}.actions-grid,.journey-route,.transport-grid,.weather-grid{max-width:100%;overflow-x:hidden}.content-card{background:#fdfcfa;border:1px solid #ddd;border-radius:12px;box-shadow:0 2px 4px #0000000d;margin-bottom:12px;overflow:hidden;transition:box-shadow .2s ease}.content-card:hover{box-shadow:0 4px 8px #0000001a}.card-main{display:flex;gap:12px;padding:12px}.card-image{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-shrink:0;height:80px;justify-content:center;overflow:hidden;width:80px}.card-image img{border-radius:8px;height:100%;object-fit:cover;width:100%}.card-content{display:flex;flex:1 1;flex-direction:column;gap:4px}.card-title{color:#2c3e50;font-size:14px;font-weight:600;margin:0}.card-subtitle{color:#6c757d;font-size:12px;margin:0}.card-details{display:flex;flex-direction:column;gap:2px;margin-top:4px}.card-detail{color:#495057;font-size:12px}.detail-label{color:#6c757d;font-weight:500}.detail-value{margin-left:4px}.card-actions{background:#f8f9fa;border-top:1px solid #eee;display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px}.card-action-button{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:12px;padding:4px 8px;transition:all .2s ease}.card-action-button:hover{background:#f8f9fa;border-color:#007bff}.card-action-button.primary{background:#007bff;border-color:#007bff;color:#fff}.card-action-button.primary:hover{background:#0056b3}.print-files-display{background:#fdfcfa;border:1px solid #e0e0e0;border-radius:12px;padding:16px}.files-summary{margin-bottom:16px}.files-summary h3{color:#2c3e50;font-size:16px;margin:0 0 8px}.summary-stats{color:#6c757d;display:flex;flex-wrap:wrap;font-size:12px;gap:16px}.summary-stats span{white-space:nowrap}.printer-status{margin-bottom:16px}.printer-status h4{color:#2c3e50;font-size:14px;margin:0 0 12px}.printer-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.printer-card{border-left:4px solid #ddd}.printer-card.idle{border-left-color:#28a745}.printer-card.printing{border-left-color:#007bff}.printer-card.error{border-left-color:#dc3545}.printer-card.offline{border-left-color:#6c757d}.files-section h4{color:#2c3e50;font-size:14px;margin:0 0 12px}.files-grid{display:flex;flex-direction:column;gap:16px}.file-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:12px}.file-header{margin-bottom:12px}.file-header h5{color:#2c3e50;font-size:14px;font-weight:600;margin:0 0 4px}.file-path{background:#f8f9fa;border-radius:4px;color:#6c757d;font-family:monospace;font-size:11px;padding:2px 6px}.file-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.trays-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.tray-card{background:#fff;border:1px solid #e9ecef}.tray-card .card-image{background:#f1f3f4;height:60px;width:60px}.tray-card-clickable{border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.tray-card-clickable:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.tray-card-clickable:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.tray-card-clickable .content-card{margin-bottom:0;transition:none}.tray-card-clickable .content-card:hover{box-shadow:none;transform:none}.printer-selection{margin-bottom:16px}.printer-selection h4{color:#2c3e50;font-size:14px;margin:0 0 12px}.printer-selector{display:flex;flex-wrap:wrap;gap:12px}.printer-select-button{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;min-width:120px;padding:12px 16px;text-align:center;transition:all .2s ease}.printer-select-button:hover{background:#f8f9fa;border-color:#007bff}.printer-select-button.selected{background:#d4edda;border:2px solid #28a745;position:relative}.printer-select-button.selected:after{background:#28a745;border-radius:10px;color:#fff;content:"Selected";font-size:10px;font-weight:600;line-height:1;padding:2px 6px;position:absolute;right:-8px;top:-8px}.printer-select-button:not(.selected).available{border-left:4px solid #28a745}.printer-select-button:not(.selected).busy{border-left:4px solid #ffc107}.printer-select-button:not(.selected).error{border-left:4px solid #dc3545}.printer-select-button:not(.selected).unknown{border-left:4px solid #6c757d}.printer-select-name{color:#2c3e50;font-size:14px;font-weight:600}.printer-select-status{color:#6c757d;font-size:12px;margin-top:2px}.printer-select-task{color:#495057;font-size:11px;font-style:italic;margin-top:2px}.trays-section{margin-top:12px}.trays-header{margin-bottom:8px}.trays-header h6{color:#495057;font-size:13px;font-weight:500;margin:0}.no-trays-message{background:#f8f9fa;border:1px dashed #dee2e6;border-radius:8px;color:#6c757d;font-style:italic;padding:20px;text-align:center}.image-modal-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.image-modal-content{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0000004d;max-height:90vh;max-width:90vw;overflow:hidden;position:relative}.image-modal-close{align-items:center;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;position:absolute;right:10px;top:10px;transition:background .2s ease;width:32px;z-index:2001}.image-modal-close:hover{background:#000000e6}.image-modal-image{display:block;height:auto;max-height:calc(90vh - 60px);max-width:100%;object-fit:contain;width:auto}.image-modal-caption{background:#f8f9fa;border-top:1px solid #dee2e6;color:#495057;font-size:14px;padding:12px 16px;text-align:center}.confirm-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1500}.confirm-modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0000004d;max-width:400px;overflow:hidden;width:100%}.confirm-modal-header{align-items:center;display:flex;justify-content:space-between;padding:20px 20px 0}.confirm-modal-header h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0}.confirm-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;display:flex;font-size:20px;height:24px;justify-content:center;padding:0;transition:background .2s ease;width:24px}.confirm-modal-close:hover{background:#f8f9fa;color:#495057}.confirm-modal-body{padding:20px}.confirm-modal-body p{color:#495057;line-height:1.5;margin:0;white-space:pre-line}.confirm-modal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:0 20px 20px}@media (max-width:600px){.confirm-modal-actions{gap:6px;justify-content:center}.confirm-modal-button{font-size:13px;min-width:auto;padding:8px 12px}}.confirm-modal-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:10px 20px;transition:all .2s ease}.confirm-modal-button.cancel{background:#f8f9fa;border:1px solid #dee2e6;color:#6c757d}.confirm-modal-button.cancel:hover{background:#e9ecef;color:#495057}.confirm-modal-button.confirm{background:#007bff;color:#fff}.confirm-modal-button.confirm:hover{background:#0056b3}.confirm-modal-button.danger{background:#dc3545;color:#fff}.confirm-modal-button.danger:hover{background:#c82333}.confirm-modal-button.warning{background:#ffc107;color:#212529}.confirm-modal-button.warning:hover{background:#e0a800}.confirm-modal-button.secondary{background:#6c757d;color:#fff}.confirm-modal-button.secondary:hover{background:#5a6268}@media (max-width:768px){.card-main{gap:8px;padding:8px}.card-image{height:60px;width:60px}.tray-card .card-image{height:50px;width:50px}.printer-select-button{min-width:auto}.summary-stats{flex-direction:column;gap:8px}}.cron-modal-content{max-width:500px;width:90%}.cron-modal-field{margin-bottom:20px}.cron-modal-field label{color:#374151;display:block;font-weight:600;margin-bottom:8px}.cron-prompt-preview{background:#f9fafb;color:#374151;font-family:inherit;line-height:1.4;max-height:100px;overflow-y:auto;padding:12px}.cron-input,.cron-prompt-preview{border:1px solid #d1d5db;border-radius:8px}.cron-input{background:#fff;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;padding:10px 12px;transition:border-color .2s ease;width:100%}.cron-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.cron-help{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin-top:10px;padding:12px}.cron-help small{color:#1e40af;line-height:1.5}.cron-help code{background:#dbeafe;border-radius:3px;padding:2px 4px}.cron-input-error,.cron-input-error:focus{border-color:#ef4444!important}.cron-input-error:focus{box-shadow:0 0 0 3px #ef44441a!important}.cron-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-top:6px;padding:8px}.cron-error small{color:#dc2626;font-weight:500}.cron-existing-info{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;margin-bottom:12px;padding:12px}.cron-existing-info strong{color:#92400e;display:block;margin-bottom:8px}.cron-existing-details{color:#78350f}.status-active{color:#065f46;font-weight:600}.status-inactive{color:#991b1b;font-weight:600}.system-messages-container{margin:0 auto;max-width:800px;padding:0}.system-header{border-bottom:1px solid #e5e7eb;padding:20px 20px 16px}.system-header h2{color:#1f2937;font-size:24px;margin:0 0 8px}.system-info{color:#6b7280}.system-messages{display:flex;flex-direction:column}.no-messages{color:#6b7280;padding:40px;text-align:center}.no-messages p{margin:8px 0}@media (max-width:768px){.system-messages-container{padding:0}.system-header{padding:16px}.mobile-menu-toggle{display:flex}.mobile-sidebar-overlay{display:block}body,html{overflow-x:hidden!important;position:relative}.app-layout,body,html{max-width:100%;width:100vw}.app-layout,.content-area{overflow-x:hidden}.content-area{margin-left:0;max-width:100%;width:100%}.alerts-widgets-area{box-sizing:border-box;left:0;padding-left:52px;padding-right:12px;width:100%}.mobile-menu-toggle-floating{display:flex;left:12px}.user-profile-floating{right:12px;top:12px}#userInput{padding-right:65px}.input-area{box-sizing:border-box;left:0;margin-left:0;max-width:none;padding:8px 12px;transform:none;width:100%}.main-content{margin-left:0;max-width:100%;overflow-x:hidden;width:100%}.prompt-suggestions-panel{bottom:106px;box-sizing:border-box;left:0;margin-left:0;max-width:none;padding:0;transform:none;width:100%}.messages{box-sizing:border-box;overflow-x:hidden;padding-left:18px;padding-right:18px}.chat-container,.messages{margin:0 auto;max-width:100%;width:100%}.chat-container{padding-left:0;padding-right:0}}.mic-btn.flipping{animation:flipButton .3s ease-in-out}@keyframes flipButton{0%{transform:rotateX(0deg)}50%{transform:rotateX(90deg)}to{transform:rotateX(0deg)}}.mic-btn.text-mode{background:linear-gradient(145deg,#e3f2fd,#bbdefb);border-color:#2196f3}.mode-indicator{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;bottom:-2px;box-shadow:0 1px 2px #0000001a;display:flex;font-size:8px;height:16px;justify-content:center;right:-2px;width:16px}.mode-hint,.mode-indicator{display:none;position:absolute}.mode-hint{bottom:-30px;color:#666;font-size:10px;left:50%;opacity:.7;pointer-events:auto;transform:translateX(-50%);white-space:nowrap}.user-profile{position:relative}.profile-toggle{background:none;border:none;cursor:pointer;padding:0}.profile-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;font-size:16px;font-weight:700;height:40px;justify-content:center;width:40px}.profile-dropdown{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:250px;position:absolute;right:0;top:50px;z-index:1000}.profile-info{border-bottom:1px solid #eee;padding:1rem}.profile-name{color:#333;font-size:16px;font-weight:700;margin-bottom:4px}.profile-email{color:#666;font-size:14px;margin-bottom:1rem}.profile-roles{margin-top:1rem}.roles-label{color:#333;font-size:14px;font-weight:700;margin-bottom:8px}.no-roles{background:#ffebee;border-radius:4px;color:#f44336;font-size:12px;padding:8px;text-align:center}.profile-actions{display:flex;flex-direction:column;gap:8px;padding:1rem}.admin-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;width:100%}.admin-btn:hover{background:#c82333}.refresh-btn{border-radius:4px;margin-bottom:8px;width:100%}.refresh-btn:hover{background:#0056b3}.logout-btn{background:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;width:100%}.logout-btn:hover{background:#d32f2f}.machine-mode-indicator{background:linear-gradient(135deg,#9c27b0,#673ab7);border-radius:4px;box-sizing:border-box;color:#fff;max-width:100%;overflow:hidden;padding:8px 12px;text-align:center;width:100%}.machine-badge{font-size:13px;font-weight:700;margin-bottom:2px}.machine-badge,.machine-details{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.machine-details{font-size:10px;opacity:.8}.error-banner{background-color:#dc3545;border-left:4px solid #a71e2a;border-radius:6px;box-shadow:0 2px 4px #0000001a;box-sizing:border-box;color:#fff;margin-bottom:16px;max-width:100%;overflow:hidden;padding:12px 16px;width:100%}.error-banner-content{align-items:flex-start;display:flex;gap:12px;max-width:100%;overflow:hidden}.error-icon{flex-shrink:0;font-size:20px;margin-top:2px}.error-messages{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:0;overflow:hidden}.error-item{align-items:baseline;display:flex;flex-wrap:wrap;font-size:14px;gap:4px;line-height:1.4;min-width:0;overflow-wrap:break-word;word-break:break-word}.error-source{color:#fff3cd;flex-shrink:0;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}@media (max-width:768px){.error-banner{margin-bottom:12px;padding:10px 12px}.error-banner-content{gap:8px}.error-icon{font-size:18px}.error-item{font-size:13px}.error-source{font-size:11px}}.error-banner{animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0}.modal-backdrop,.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1500!important}.modal-overlay{background-color:#00000080}.modal-content{animation:modalSlideIn .3s ease;max-height:80vh;position:relative;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-close-floating{align-items:center;background:#ffffffe6;border:none;border-radius:50%;box-shadow:0 2px 8px #0000001a;color:#666;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;padding:8px;position:absolute;right:16px;top:16px;transition:all .2s ease;width:32px;z-index:10}.modal-close-floating:hover{background:#f0f0f0f2;color:#333;transform:scale(1.1)}.modal-body{padding:24px}.printer-overview{background:#f8f9fa;border-radius:8px;display:flex;flex-direction:column;gap:2px;margin-bottom:24px;padding:16px}.printer-name{color:#333;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.printer-status-text{color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.print-progress-container{align-items:center;display:flex;gap:8px;margin-top:4px}.print-progress-bar{background-color:#e9ecef;border-radius:3px;flex:1 1;height:6px;overflow:hidden}.print-progress-fill{border-radius:3px;height:100%;transition:width .3s ease}.print-progress-text{color:#333;font-size:12px;font-weight:600;min-width:40px;text-align:right}.print-eta{color:#007acc;font-size:11px;font-weight:500;margin-top:2px}.layer-info{font-weight:400}.status-indicator{border-radius:6px;color:#fff;letter-spacing:.5px;text-transform:uppercase}.print-details{display:flex;flex-direction:column;gap:8px}.eta-info,.progress-info{align-items:center;display:flex;gap:4px}.eta-label,.progress-label{color:#666;font-weight:600;min-width:70px}.eta-value,.progress-value{color:#333;font-weight:500}.layer-info{color:#666;font-size:.9em;margin-left:4px}.printer-controls{margin-top:24px}.printer-controls h4{color:#333;font-size:18px;font-weight:600;margin:0 0 16px}.control-section{margin-bottom:20px}.control-section h5{color:#666;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.control-buttons{display:flex;flex-wrap:wrap;gap:10px}.control-btn{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;color:#495057;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px;justify-content:center;min-height:44px;padding:12px 16px;transition:all .2s ease}.btn-icon{font-size:16px}.btn-label{font-size:13px;font-weight:500}.control-btn:disabled{cursor:not-allowed;opacity:.6}.control-btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd;box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.pause-btn{background:#fff3cd;border-color:#ffeaa7;color:#856404}.pause-btn:hover:not(:disabled){background:#ffeaa7;border-color:#ffd93d}.resume-btn{background:#d1ecf1;border-color:#b6d7ff;color:#0c5460}.resume-btn:hover:not(:disabled){background:#b6d7ff;border-color:#6bb6ff}.stop-btn{background:#f8d7da;border-color:#f5c6cb;color:#721c24}.stop-btn:hover:not(:disabled){background:#f5c6cb;border-color:#f1b0b7}.refresh-btn{background:#cce5ff;border-color:#b3d7ff;color:#004085}.refresh-btn:hover:not(:disabled){background:#b3d7ff;border-color:#80c7ff}.light-btn{background:#e2e3ff;border-color:#d1d3ff;color:#3d1a78}.light-btn:hover:not(:disabled){background:#d1d3ff;border-color:#b8bcff}.fan-btn{background:#d1f2eb;border-color:#bee5d3;color:#0f5132}.fan-btn:hover:not(:disabled){background:#bee5d3;border-color:#9dd1b8}@media (max-width:600px){.modal-content{margin:20px;max-width:none;width:95%}.modal-header{padding:16px 20px 12px}.modal-body{padding:20px}.control-buttons{flex-direction:column}.control-btn{flex:none;min-width:auto}}.status-progress-widget{align-items:center;background:#fff;border-left:4px solid #2196f3;border-radius:8px;box-shadow:0 1px 6px #0000001a;display:flex;gap:12px;max-width:400px;min-height:30px;min-width:100px;overflow:hidden;padding:8px 12px;position:relative;transition:all .3s ease;width:-webkit-max-content;width:max-content}.games-widgets .status-progress-widget,.gym-section .status-progress-widget{padding-left:4px}.status-progress-widget:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.status-widget-icon{color:#2196f3;flex-shrink:0;font-size:18px}.status-widget-content{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.status-header-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.status-title{color:#333;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-text{background-color:#e3f2fd;border-radius:12px;color:#1976d2;font-size:12px;font-weight:500;letter-spacing:.5px;padding:2px 6px;text-transform:uppercase;white-space:nowrap}.status-text.ready{background-color:#e8f5e8;color:#4caf50}.status-text.active{background-color:#e3f2fd;color:#2196f3}.status-text.paused{background-color:#fff3e0;color:#ff9800}.status-text.error{background-color:#ffebee;color:#f44336;font-weight:600}.status-text.unknown{background-color:#f5f5f5;color:#9e9e9e}.status-progress-container{align-items:center;display:flex;gap:8px;margin-top:2px}.status-progress-bar{background-color:#f5f5f5;border:1px solid #ddd;border-radius:3px;flex:1 1;height:6px;overflow:hidden}.status-progress-fill{border-radius:2px;height:100%;transition:width .3s ease}.status-progress-text{color:#333;font-size:12px;font-weight:600;min-width:40px;text-align:right}.status-subtitle{align-items:center;color:#2196f3;display:flex;font-size:11px;justify-content:space-between;margin-top:2px}.status-accent{color:#888;font-weight:500}.status-progress-widget.error{animation:pulse-widget 2s infinite;border-left-color:#f44336}.status-progress-widget.error .status-subtitle,.status-progress-widget.error .status-widget-icon{color:#f44336}.status-progress-widget.paused{border-left-color:#ff9800}.status-progress-widget.paused .status-widget-icon{color:#ff9800}.status-progress-widget.active{border-left-color:#2196f3}.status-progress-widget.active .status-widget-icon{color:#2196f3}.status-progress-widget.ready{border-left-color:#4caf50}.status-progress-widget.ready .status-widget-icon{color:#4caf50}.status-progress-widget.unknown{border-left-color:#9e9e9e}.status-progress-widget.unknown .status-widget-icon{color:#9e9e9e}@media (max-width:768px){.status-progress-widget{max-width:300px}.status-title{font-size:13px}.status-text{font-size:11px}.status-subtitle{font-size:10px}}@media (max-width:480px){.status-progress-widget{max-width:250px}.status-widget-icon{font-size:16px}.status-title{font-size:12px}}.lights-list{display:flex;flex-wrap:wrap;gap:8px;width:100%}.light-status-widget{align-items:center;background:#fff;border-left:4px solid #e0e0e0;border-radius:8px;box-shadow:0 1px 6px #0000001a;cursor:pointer;display:flex;gap:12px;max-width:200px;min-height:30px;min-width:80px;overflow:hidden;padding:8px 12px;position:relative;transition:all .3s ease;-webkit-user-select:none;user-select:none;width:-webkit-max-content;width:max-content}.light-status-widget:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-1px)}.light-status-widget:active{box-shadow:0 2px 10px #0000001a;transform:translateY(0)}.light-status-widget.light-on{background:linear-gradient(135deg,#fff9c4,#fff);border-left-color:#ffc107}.light-status-widget.light-off{background:#f8f9fa;border-left-color:#6c757d}.light-widget-icon{align-items:center;display:flex;font-size:18px;height:20px;justify-content:center;min-width:20px;transition:all .2s ease}.light-on .light-widget-icon{filter:brightness(1.2) drop-shadow(0 0 4px rgba(255,193,7,.6));transform:scale(1.1)}.light-off .light-widget-icon{filter:grayscale(1);opacity:.5}.light-widget-content{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.light-name{color:#2c3e50;font-size:12px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.light-state{font-size:10px;font-weight:500;letter-spacing:.5px;line-height:1;text-transform:uppercase}.light-on .light-state{color:#856404}.light-off .light-state{color:#6c757d}.light-brightness{font-size:.9em;font-weight:400;opacity:.8}@media (max-width:768px){.light-status-widget{gap:8px;max-width:150px;min-width:70px;padding:6px 8px}.light-widget-icon{font-size:16px;height:18px;min-width:18px}.light-name{font-size:11px}.light-state{font-size:9px}}@media (max-width:480px){.lights-list{gap:6px}.light-status-widget{gap:6px;max-width:120px;min-width:60px;padding:5px 6px}.light-widget-icon{font-size:14px;height:16px;min-width:16px}.light-name{font-size:10px}.light-state{font-size:8px}}.alerts-widgets-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:8px;margin:0 auto;padding:8px 12px;position:relative}.alerts-last-updated{transition:all .2s ease}.alerts-last-updated.clickable{color:#007acc;cursor:pointer}.alerts-last-updated.clickable:hover{background:#007acc1a;border-color:#007acc;box-shadow:0 4px 12px #007acc33;color:#005a99;transform:translateY(-1px)}.alert-widget-base{align-items:center;background:#fff;border-left:4px solid #e0e0e0;border-radius:8px;box-shadow:0 1px 6px #0000001a;display:flex;gap:12px;max-width:400px;min-height:30px;min-width:100px;overflow:hidden;padding:8px 12px;position:relative;transition:all .3s ease;width:-webkit-max-content;width:max-content}.alert-widget-base:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.alerts-last-updated{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid #0000001a;border-radius:12px;bottom:-8px;box-shadow:0 2px 8px #0000001a;color:#666;font-size:10px;padding:4px 8px;position:absolute;right:16px;white-space:nowrap;z-index:10}.storage-alert-widget{align-items:center;background:#fff;border-left:4px solid #e0e0e0;box-shadow:0 1px 6px #0000001a;display:flex;gap:12px;max-width:400px;overflow:hidden;position:relative;transition:all .3s ease;width:-webkit-max-content;width:max-content}.storage-alert-widget:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.storage-alert-widget.normal{border-left-color:#4caf50}.storage-alert-widget.medium{border-left-color:#ff9800}.storage-alert-widget.high{border-left-color:#ff5722}.storage-alert-widget.critical{animation:pulse-widget 2s infinite;border-left-color:#f44336}.storage-alert-widget.unknown{border-left-color:#9e9e9e}.job-alert-widget.normal{border-left-color:#4caf50}.job-alert-widget.medium{border-left-color:#ff9800}.job-alert-widget.high{border-left-color:#ff5722}.job-alert-widget.critical{animation:pulse-widget 2s infinite;border-left-color:#f44336}.job-alert-widget.unknown{border-left-color:#9e9e9e}.generic-alert-widget{border-left-color:#ff9800}.generic-alert-widget .widget-icon{color:#ff9800}.alert-name{color:#333;font-size:14px;font-weight:600}.alert-instance,.alert-job{color:#666;display:block;font-size:12px}.uptime-alert-widget{border-left-color:#4caf50}.uptime-alert-widget.critical{animation:pulse-widget 2s infinite;border-left-color:#f44336}.uptime-alert-widget .widget-icon{font-size:18px}.uptime-alert-widget .widget-content{align-items:flex-start;display:flex;flex-direction:column;gap:4px}.service-name{color:#333;font-size:14px;font-weight:600}.service-status-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.service-status{color:#666;font-size:12px}.status-indicator.down{color:#f44336;font-weight:600;text-transform:uppercase}.status-indicator.up{color:#4caf50;font-weight:600;text-transform:uppercase}.service-instance{color:#999;display:block;font-size:11px}.widget-icon{color:#666;flex-shrink:0;font-size:20px;opacity:.8}.widget-main{flex:1 1;min-width:0}.widget-content{align-items:center;display:flex;gap:12px;width:100%}.storage-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.storage-name{color:#1a1a1a;font-size:14px;font-weight:600;line-height:1.3}.storage-status-text{background-color:#e3f2fd;border-radius:12px;color:#1976d2;font-size:12px;font-weight:500;padding:2px 6px;white-space:nowrap}.storage-progress-container{align-items:center;display:flex;gap:8px;margin-bottom:8px}.storage-progress-bar{background-color:#f5f5f5;border:1px solid #ddd;border-radius:8px;flex:1 1;height:16px;overflow:hidden}.storage-progress-fill{border-radius:7px;height:100%;transition:width .3s ease}.storage-progress-text{color:#1a1a1a;font-size:12px;font-weight:600;min-width:40px;text-align:right}.storage-details{align-items:center;color:#666;display:flex;font-size:11px;justify-content:space-between}.storage-mountpoint{font-weight:500}.storage-time{color:#888}.job-header-row,.job-status-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.job-status-row{margin-top:2px}.job-name{color:#333;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-process-status{align-items:center;display:flex}.process-name{background:#1976d21a;border-radius:4px;color:#1976d2;font-size:12px;font-weight:500;letter-spacing:.5px;padding:2px 6px;text-transform:uppercase}.alert-time{flex-shrink:0;font-weight:500}.widget-footer{border-top:1px solid #f0f0f0;display:none;margin-top:12px;padding-top:8px}.alert-time{color:#999;font-size:11px;margin-left:8px;white-space:nowrap}@media (max-width:479px){.alerts-widgets-container{gap:6px;padding:8px 12px}.storage-alert-widget{gap:8px;max-width:100%;min-height:40px;min-width:250px;padding:10px 12px}.widget-icon{font-size:18px}.widget-content{gap:6px}.usage-stat{font-size:18px}.instance-mountpoint{margin:0 4px}.instance-name{font-size:12px}.mountpoint{font-size:11px;padding:1px 2px}.alert-time{font-size:10px}.job-process{margin:0 4px}.process-name{font-size:11px;padding:1px 2px}.alerts-last-updated{border-radius:8px;bottom:-6px;font-size:9px;padding:3px 6px;right:12px}}@media (prefers-color-scheme:dark){.storage-alert-widget{background:#1e1e1e;color:#fff}.instance-name{color:#64b5f6}.mountpoint{background:#ffffff1a;color:#ccc}.widget-footer{border-top-color:#333}.alert-time{color:#999}}.no-alerts-widget{background:#f8fff8;border-left-color:#4caf50;opacity:.8}.no-alerts-widget .widget-icon{color:#4caf50}.no-alerts-message{color:#4caf50;font-size:14px;font-weight:500}.alerts-content{display:flex;flex-wrap:wrap;gap:8px;transition:all .3s ease;width:100%}.alerts-content>.lights-list,.alerts-content>.printers-list{display:contents}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alerts-content{animation:fadeIn .3s ease}.gym-stats-list{display:flex;flex-wrap:wrap;gap:12px;width:100%}.gym-stats-widget{align-items:center;background:#fff;border-left:4px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:16px;max-width:280px;min-height:60px;min-width:180px;overflow:hidden;padding:12px 16px;position:relative;transition:all .3s ease;width:-webkit-max-content;width:max-content}.gym-stats-widget:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.gym-stats-widget.recent{background:linear-gradient(135deg,#d4edda,#fff);border-left-color:#28a745}.gym-stats-widget.warning{background:linear-gradient(135deg,#fff9c4,#fff);border-left-color:#ffc107}.gym-stats-widget.overdue{background:linear-gradient(135deg,#f8d7da,#fff);border-left-color:#dc3545}.gym-stats-widget.excellent{background:linear-gradient(135deg,#d4edda,#fff);border-left-color:#28a745}.gym-stats-widget.good{background:linear-gradient(135deg,#bee5eb,#fff);border-left-color:#17a2b8}.gym-stats-widget.okay{background:linear-gradient(135deg,#fff9c4,#fff);border-left-color:#ffc107}.gym-stats-widget.poor{background:linear-gradient(135deg,#f8d7da,#fff);border-left-color:#dc3545}.gym-stats-widget.loading{background:#f8f9fa;border-left-color:#6c757d;opacity:.8}.gym-stats-widget.error{background:linear-gradient(135deg,#f8d7da,#fff);border-left-color:#dc3545}.gym-stats-widget.no-data{background:#f8f9fa;border-left-color:#6c757d}.gym-widget-icon{align-items:center;display:flex;flex-shrink:0;font-size:24px;height:32px;justify-content:center;width:32px}.gym-widget-content{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.gym-stat-label{color:#6c757d;font-size:11px;font-weight:600;letter-spacing:.5px;line-height:1.2;text-transform:uppercase}.gym-stat-value{color:#333;font-size:24px;font-weight:700;line-height:1;margin:2px 0}.gym-stat-detail{color:#6c757d;font-size:10px;line-height:1.2}.gym-stat-location{color:#6c757d;font-size:9px;font-weight:500;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gym-loading{color:#6c757d;font-size:12px;font-style:italic}.gym-error{color:#dc3545;font-size:12px;font-weight:600}.gym-error-details{color:#6c757d;font-size:10px;font-style:italic;margin-top:2px}.gym-no-data{color:#6c757d;font-size:12px;font-style:italic}@media (max-width:768px){.gym-stats-list{flex-direction:column}.gym-stats-widget{max-width:none;width:100%}}@keyframes statUpdate{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.gym-stat-value{animation:statUpdate .3s ease-in-out}.riftbound-brand-primary{color:#6366f1}.riftbound-brand-bg{background-color:#6366f1}.riftbound-events-widget:hover{cursor:pointer}.modal-overlay{align-items:center;background:#0009;bottom:0;box-sizing:border-box;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.riftbound-modal{border-top:4px solid #6366f1}.modal-header{align-items:start;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px 16px}.modal-title-section{align-items:start;display:flex;gap:12px}.modal-title-section h2{color:#1a202c;font-size:20px;font-weight:600;margin:0}.modal-close-btn{background:none;border:none;color:#718096;cursor:pointer;font-size:24px;line-height:1;padding:4px}.modal-close-btn:hover{color:#2d3748}.modal-body{padding:20px 24px}.event-detail-row{align-items:center;display:flex;gap:12px;margin-bottom:16px}.event-detail-row:last-child{margin-bottom:0}.detail-label{color:#4a5568;font-size:14px;font-weight:600;min-width:100px}.detail-value{color:#2d3748;flex:1 1;font-size:14px}.status-badge{border-radius:4px;font-size:12px;font-weight:600;padding:4px 8px}.status-badge.registered{background:#c6f6d5;color:#22543d}.status-badge.open{background:#fed7d7;color:#742a2a}.modal-footer{border-top:1px solid #e2e8f0;display:flex;justify-content:center;padding:16px 24px 20px}.join-event-btn{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.riftbound-join-btn:hover{background:#5147e5;box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}.riftbound-join-btn:active{transform:translateY(0)}@media (max-width:768px){.modal-overlay{padding:10px}.modal-content{max-height:85vh}.modal-header{padding:16px 20px 12px}.modal-title-section h2{font-size:18px}.modal-body{padding:16px 20px}.event-detail-row{flex-direction:column;gap:4px;margin-bottom:12px}.detail-label{margin-bottom:2px;min-width:auto}}.bandai-events-widget .status-progress-widget{border-left:4px solid #ff6b35}.bandai-events-widget .status-progress-widget:hover{box-shadow:0 4px 12px #ff6b3533}.bandai-events-widget .progress-bar{background:linear-gradient(90deg,#ff6b35,orange)}.bandai-events-widget .status-registered{color:#2196f3}.bandai-modal{border-top:4px solid #ff6b35}.bandai-join-btn{background:#ff6b35;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.bandai-join-btn:hover{background:#e55a2b;box-shadow:0 4px 12px #ff6b3566;transform:translateY(-1px)}.bandai-join-btn:active{transform:translateY(0)}.bandai-events-widget .status-in-progress{color:#ff9800}.bandai-events-widget .status-completed{color:#4caf50}.bandai-events-widget .status-started{color:#f44336}.bandai-events-widget .status-finished{color:#6c757d}.bandai-events-widget .status-open{color:#ff6b35}.home-page{background:#f8fafc;box-sizing:border-box;min-height:100vh;padding:20px 20px 0}.home-content{display:flex;flex-direction:column;gap:8px;margin:0 auto;max-width:1200px;padding-top:16px}.alerts-section,.games-section,.gym-section,.lights-section,.notifications-section,.printer-section{margin-bottom:8px}.games-section{display:flex;flex-direction:column}.games-widgets{display:flex;flex-wrap:wrap;gap:12px}@media (min-width:769px){.games-widgets>*{flex:0 0 auto}}@media (max-width:768px){.games-widgets{flex-direction:column}}.home-content>.alerts-section>.alerts-widgets-container{padding:0}.home-content .alerts-last-updated{background:#f8fafce6!important;border:none!important;border-radius:4px;bottom:20px;box-shadow:0 2px 8px #0000001a!important;color:#a0aec0;font-size:11px;font-weight:400;margin:0;opacity:.9;padding:6px 10px;position:fixed!important;right:20px;text-align:right;z-index:100}.section-header{border-bottom:1px solid #e2e8f0;color:#4a5568;font-weight:600;margin:0 0 12px;padding-bottom:6px}.no-content-message,.section-header{font-size:16px;letter-spacing:.5px;text-transform:uppercase}.no-content-message{color:#718096;font-weight:500;margin:0;padding:40px 20px;text-align:center}@media (max-width:768px){.home-page{padding:12px 12px 0}.home-content{gap:16px;padding-top:12px}.section-header{font-size:14px;margin-bottom:8px;padding-bottom:4px}.no-content-message{font-size:14px;padding:30px 15px}.home-content .alerts-last-updated{bottom:15px;font-size:10px;padding:4px 8px;right:15px}}@media (prefers-color-scheme:dark){.home-page{background:#1a202c}.section-header{border-bottom-color:#4a5568;color:#a0aec0}.no-content-message{color:#718096}}.settings-page{background:#f8fafc;box-sizing:border-box;margin:0 auto;max-width:800px;min-height:100vh;padding:20px}.settings-header{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:40px;padding:20px;text-align:center}.settings-header h1{color:#1a202c;font-size:32px;font-weight:700;margin:0 0 8px}.settings-header p{color:#718096;font-size:16px;font-weight:400;margin:0}.settings-content{display:flex;flex-direction:column;gap:20px}.settings-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:24px}.settings-section h2{color:#2d3748;font-size:20px;font-weight:600;margin:0 0 8px}.section-description{color:#718096;font-size:14px;line-height:1.4;margin:0 0 20px}.setting-group{margin-bottom:24px}.setting-label{color:#2d3748;display:block;font-size:16px;font-weight:600;margin-bottom:12px}.route-options{display:flex;flex-direction:column;gap:12px}.route-option{align-items:flex-start;background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;padding:16px;transition:all .2s ease}.route-option:hover{background:#f7fafc;border-color:#4299e1}.route-option input[type=radio]{accent-color:#4299e1;margin-right:12px;margin-top:2px}.route-option input[type=radio]:checked+.route-info{color:#2b6cb0}.route-option:has(input[type=radio]:checked){background:#ebf8ff;border-color:#4299e1}.route-info{display:flex;flex-direction:column;gap:4px}.route-label{color:#2d3748;font-size:16px;font-weight:600}.route-description{color:#718096;font-size:14px;line-height:1.4}.toggle-setting{display:flex;flex-direction:column;gap:12px;margin-top:16px}.toggle-option{align-items:flex-start;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s ease}.toggle-option:hover{background:#f8fafc;border-color:#cbd5e1}.toggle-option input[type=checkbox]{accent-color:#4299e1;height:18px;margin:2px 0 0;width:18px}.toggle-option input[type=checkbox]:checked+.toggle-info{color:#2b6cb0}.toggle-option:has(input[type=checkbox]:checked){background:#ebf8ff;border-color:#4299e1}.toggle-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.toggle-label{color:#2d3748;font-size:16px;font-weight:600}.toggle-description{color:#718096;font-size:14px;line-height:1.4}.setting-actions{display:flex;justify-content:flex-start;margin-top:20px}.save-btn{align-items:center;background:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease}.save-btn:hover:not(:disabled){background:#3182ce;transform:translateY(-1px)}.save-btn:disabled{cursor:not-allowed;opacity:.7}.save-btn.saved{background:#48bb78}.machine-mode-info{align-items:center;display:flex;gap:12px}.machine-mode-badge{background:#fed7d7;border:1px solid #feb2b2;border-radius:6px;color:#c53030;font-size:14px;font-weight:600;padding:6px 12px}.about-info{display:flex;flex-direction:column;gap:12px}.about-item{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:8px 0}.about-item:last-child{border-bottom:none}.about-item label{color:#2d3748;font-weight:600}.about-item span{color:#718096;font-family:monospace}@media (max-width:768px){.settings-page{padding:10px}.settings-header{margin-bottom:20px;padding:15px}.settings-header h1{font-size:24px}.settings-section{padding:16px}.route-option{padding:12px}.about-item{align-items:flex-start;flex-direction:column;gap:4px}}@media (prefers-color-scheme:dark){.settings-page{background:#1a202c}.settings-header,.settings-section{background:#2d3748;border-color:#4a5568}.about-item label,.route-label,.setting-label,.settings-header h1,.settings-section h2{color:#f7fafc}.about-item span,.route-description,.section-description,.settings-header p{color:#a0aec0}.route-option{background:#2d3748;border-color:#4a5568}.route-option:hover{background:#374151;border-color:#60a5fa}.route-option:has(input[type=radio]:checked){background:#1e3a8a;border-color:#60a5fa}}.credential-status{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px}.credential-item{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.credential-item label{color:#374151;font-weight:600}.credential-item span{background:#fff;border:1px solid #d1d5db;border-radius:4px;font-family:monospace;font-size:14px;padding:4px 8px}.clear-credentials-btn{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-bottom:12px;padding:12px 16px;transition:background-color .2s ease;width:100%}.clear-credentials-btn:hover{background:#b91c1c}.clear-credentials-btn:active{background:#991b1b}.warning-text{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:14px;line-height:1.4;margin:0;padding:12px}.scheduled-container{margin:0 auto;max-width:1200px;padding:20px}.scheduled-header{display:flex;flex-direction:column;gap:10px;margin-bottom:30px}.scheduled-header h1{color:#2c3e50;font-size:2rem;margin:0}.scheduled-header p{color:#666;font-size:1rem;margin:0}.refresh-btn{align-self:flex-start;background:#3498db;font-size:.9rem;transition:background .2s}.refresh-btn:hover{background:#2980b9}.loading{color:#666}.error{color:#e74c3c;padding:40px;text-align:center}.retry-btn{background:#e74c3c;border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:15px;padding:10px 20px}.retry-btn:hover{background:#c0392b}.no-tasks{background:#f8f9fa;border-radius:8px;color:#666;font-size:1.1rem;padding:40px;text-align:center}.scheduled-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;overflow-x:auto}.scheduled-table{border-collapse:collapse;font-size:.9rem;width:100%}.scheduled-table th{background:#34495e;border-bottom:2px solid #2c3e50;color:#fff;font-weight:600;padding:12px 8px;text-align:left}.scheduled-table td{border-bottom:1px solid #ecf0f1;padding:12px 8px;vertical-align:top}.task-row:hover{background:#f8f9fa}.task-row.task-pending{border-left:4px solid #f39c12}.task-row.task-running{border-left:4px solid #3498db}.task-row.task-completed{border-left:4px solid #27ae60}.task-row.task-failed{border-left:4px solid #e74c3c}.task-row.task-cancelled{border-left:4px solid #95a5a6}.task-id{color:#2c3e50;font-family:Monaco,Menlo,monospace;font-weight:700;min-width:60px}.task-type{font-weight:600;min-width:80px}.task-content{max-width:300px}.task-text{font-weight:500;line-height:1.4;margin-bottom:4px;word-break:break-word}.cron-expression{color:#666;font-family:Monaco,Menlo,monospace;font-size:.8rem}.cron-expression code{background:#f1f2f6;border-radius:3px;font-size:.75rem;padding:2px 4px}.task-status{font-weight:600;min-width:100px}.task-time{color:#666;font-family:Monaco,Menlo,monospace;font-size:.85rem;min-width:130px}.task-actions{min-width:60px;text-align:center}.delete-btn{align-items:center;border:1px solid #b02a37;border-radius:6px;cursor:pointer;display:flex;font-size:1rem;height:32px;justify-content:center;min-width:32px;padding:6px 10px;transition:all .2s}.delete-btn:hover{background:#bb2d3b;border-color:#9d242e;color:#fff;transform:scale(1.1)}@media (max-width:768px){.scheduled-container{padding:15px}.scheduled-header h1{font-size:1.5rem}.scheduled-table-container{font-size:.8rem}.scheduled-table td,.scheduled-table th{padding:8px 6px}.task-content{max-width:200px}.task-text{font-size:.85rem}}@media (max-width:480px){.scheduled-table{font-size:.75rem}.scheduled-table td,.scheduled-table th{padding:6px 4px}.task-content{max-width:150px}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-sizing:border-box;display:flex;justify-content:center;left:0;min-height:100vh;padding:20px;position:fixed;top:0;width:100vw}.login-form{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000001a;max-width:400px;padding:3rem 2rem;text-align:center;width:100%}.login-form h2{color:#333;font-size:28px;margin-bottom:.5rem;text-align:center}.login-subtitle{color:#666;font-size:14px;margin-bottom:2rem;text-align:center}.form-group{margin-bottom:1rem}.form-group input{border:2px solid #ddd;border-radius:5px;box-sizing:border-box;font-size:16px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}button[type=submit]{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;margin-bottom:1rem;padding:12px;transition:opacity .3s;width:100%}button[type=submit]:hover:not(:disabled){opacity:.9}button[type=submit]:disabled{cursor:not-allowed;opacity:.6}.google-btn{background:#4285f4;border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:16px;font-weight:500;margin-bottom:2rem;padding:16px;transition:background-color .3s,transform .1s;width:100%}.google-btn:hover:not(:disabled){background-color:#3367d6;box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.google-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.login-note{background:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;padding:1rem;text-align:center}.login-note p{color:#666;font-size:14px;margin:.25rem 0}.login-note p:first-child{color:#333;font-weight:500}.divider{margin:1rem 0;position:relative;text-align:center}.divider:before{background:#ddd;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:#fff;color:#666;font-size:14px;padding:0 15px}.toggle-form{text-align:center}.toggle-form button{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;text-decoration:underline}.toggle-form button:hover:not(:disabled){opacity:.8}.error-message{background:#ffebee;border-radius:5px;color:#c62828;font-size:14px;padding:10px;text-align:center}.admin-panel{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:2rem auto;max-width:1200px;padding:2rem}.admin-header{border-bottom:2px solid #eee;margin-bottom:2rem;padding-bottom:1rem}.admin-header h2{color:#333}.admin-header button{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.admin-header button:hover:not(:disabled){background:#0056b3}.admin-header button:disabled{background:#6c757d;cursor:not-allowed}.error-message{border-radius:4px;margin-bottom:1rem;padding:12px}.no-users{color:#666;font-style:italic;padding:3rem;text-align:center}.users-table table{border-collapse:collapse;margin-top:1rem;width:100%}.users-table td,.users-table th{border-bottom:1px solid #dee2e6;padding:12px;text-align:left}.users-table th{background:#f8f9fa;color:#495057;font-weight:700}.user-info .username{color:#333;font-weight:700}.user-info .user-id{color:#666;font-size:12px;margin-top:2px}.roles-list{display:flex;flex-wrap:wrap;gap:6px}.role-badge{align-items:center;border-radius:12px;color:#fff;display:inline-flex;font-size:12px;font-weight:700;gap:4px;padding:4px 8px}.role-badge.role-home{background:#28a745}.role-badge.role-3dprint{background:#007bff}.role-badge.role-borderlands{background:#fd7e14}.role-badge.role-admin{background:#dc3545}.remove-role{align-items:center;background:none;background:#ffffff4d;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:16px;justify-content:center;padding:0;width:16px}.remove-role:hover{background:#ffffff80}.no-roles{color:#6c757d;font-size:14px;font-style:italic}.role-actions{display:flex;flex-wrap:wrap;gap:6px}.role-btn{background:#fff;border:1px solid #dee2e6;border-radius:4px;color:#495057;cursor:pointer;font-size:12px;padding:4px 8px}.role-btn.available{background:#e9ecef;border-color:#adb5bd}.role-btn.available:hover{background:#007bff;border-color:#007bff;color:#fff}.role-btn.assigned{background:#d4edda;border-color:#c3e6cb;color:#155724;cursor:default}.role-btn:disabled{cursor:not-allowed;opacity:.6}.sidebar{background:#2c2c2c;border-right:1px solid #3a3a3a;height:100vh;left:0;position:fixed;top:0;width:60px;z-index:1000}.sidebar,.sidebar-menu{display:flex;flex-direction:column}.sidebar-menu{-ms-overflow-style:none;flex:1 1;overflow-x:hidden;overflow-y:auto;padding:10px 0;scrollbar-width:none}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-item{align-items:center;background:#0000;border:none;color:#ccc;cursor:pointer;display:flex;flex-direction:column;margin:2px 0;padding:12px 0;position:relative;text-decoration:none;transition:all .2s ease;width:100%}.sidebar-item:hover{background:#404040;color:#fff}.sidebar-item.active{background:#007bff;color:#fff}.sidebar-item.active:before{background:#fff;border-radius:0 2px 2px 0;bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.sidebar-icon{font-size:20px;margin-bottom:4px}.sidebar-label{font-size:10px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.app-layout{display:flex;height:100vh}.main-content{flex:1 1}@media (max-width:768px){.sidebar{box-shadow:2px 0 10px #0000004d;transform:translateX(-100%);transition:transform .3s ease-in-out;width:280px;z-index:1999}.sidebar.mobile-open{transform:translateX(0)}.main-content{margin-left:0}.sidebar-item{flex-direction:row;justify-content:flex-start;margin:2px 0;padding:16px 20px}.sidebar-item.active:before{width:4px}.sidebar-icon{font-size:20px;margin-bottom:0;margin-right:12px}.sidebar-label{font-size:14px;font-weight:600;letter-spacing:normal;text-transform:none}}.notification-settings{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:20px auto;max-width:500px;padding:20px}.notification-header{margin-bottom:24px;text-align:center}.notification-header h3{color:#333;font-size:24px;margin:0 0 8px}.notification-header p{color:#666;font-size:14px;line-height:1.4;margin:0}.notification-status{text-align:center}.status-indicator{border-radius:20px;display:inline-block;font-size:14px;font-weight:600;margin-bottom:8px;padding:8px 16px}.status-indicator.enabled{background-color:#e8f5e8;color:#2e7d32}.status-indicator.disabled{background-color:#ffebee;color:#c62828}.permission-denied{background:#fff3e0;border-left:3px solid #f57c00;border-radius:6px;color:#f57c00;font-size:12px;margin:8px 0 0;padding:8px 12px}.notification-controls{margin-bottom:24px;text-align:center}.disable-btn,.enable-btn,.test-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;margin:4px;padding:12px 24px;transition:all .2s ease}.enable-btn{background-color:#2196f3;color:#fff}.enable-btn:hover:not(:disabled){background-color:#1976d2;transform:translateY(-1px)}.enable-btn:disabled{background-color:#ccc;cursor:not-allowed}.test-btn{background-color:#4caf50}.test-btn:hover{background-color:#388e3c}.disable-btn{background-color:#f44336;color:#fff}.disable-btn:hover{background-color:#d32f2f;transform:translateY(-1px)}.enabled-controls{align-items:center;display:flex;flex-direction:column;gap:12px}.test-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.test-btn.local{background-color:#2196f3}.test-btn.local:hover{background-color:#1976d2}.test-btn.push{background-color:#4caf50}.test-btn.push:hover{background-color:#388e3c}.test-btn.debug{background-color:#ff9800}.test-btn.debug:hover{background-color:#f57c00}@media (min-width:400px){.enabled-controls{align-items:center;flex-direction:column}}.subscription-settings{border-top:1px solid #e0e0e0;margin-top:20px;padding-top:20px}.subscription-settings h4{color:#333;font-size:16px;margin:0 0 8px}.subscription-settings p{color:#666;font-size:14px;margin:0 0 16px}.subscription-list{display:flex;flex-direction:column;gap:12px}.subscription-item{align-items:center;background:#f8f9fa;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px;transition:background-color .2s ease}.subscription-item:hover{background:#e9ecef}.subscription-item input[type=checkbox]{accent-color:#2196f3;cursor:pointer;height:18px;width:18px}.subscription-item span{color:#333;font-size:14px;font-weight:500}.token-details{border-top:1px solid #e0e0e0;margin-top:24px;padding-top:16px}.token-details summary{color:#666;cursor:pointer;font-size:12px;font-weight:600;padding:4px 0;text-transform:uppercase}.token-details summary:hover{color:#2196f3}.token-info{margin-top:12px}.token-info label{color:#666;display:block;font-size:12px;font-weight:600;margin-bottom:4px}.token-input{background:#f8f9fa;border:1px solid #ddd;border-radius:6px;color:#666;font-family:Courier New,monospace;font-size:11px;padding:8px 12px;width:100%}.token-input:focus{background:#fff;border-color:#2196f3;outline:none}.notification-unsupported{background:#fff3e0;border-left:4px solid #f57c00;border-radius:8px;padding:40px 20px}.notification-unsupported h3{color:#ef6c00;margin:0 0 12px}.notification-unsupported p{color:#f57c00;line-height:1.4;margin:0}@media (prefers-color-scheme:dark){.notification-settings{background:#1e1e1e;color:#fff}.notification-header h3,.subscription-item span,.subscription-settings h4{color:#fff}.notification-header p,.subscription-settings p{color:#ccc}.subscription-item{background:#2a2a2a}.subscription-item:hover{background:#333}.token-input{background:#2a2a2a;border-color:#444;color:#ccc}.token-input:focus{background:#333;border-color:#2196f3}}.notification-unsupported{padding:20px;text-align:center}.notification-unsupported h3{color:#d32f2f;margin-bottom:16px}.browser-requirements{background:#f5f5f5;border-left:4px solid #ff9800;border-radius:8px;margin-top:24px;padding:16px;text-align:left}.browser-requirements h4{color:#333;font-size:16px;margin:0 0 12px}.browser-requirements ul{margin:8px 0;padding-left:20px}.browser-requirements li{font-size:14px;line-height:1.4;margin:4px 0}@media (prefers-color-scheme:dark){.browser-requirements{background:#2a2a2a;color:#ccc}.browser-requirements h4{color:#fff}}@media (max-width:768px){.notification-settings{margin:10px;max-width:calc(100vw - 20px);padding:16px}.notification-header h3{word-wrap:break-word;font-size:20px}.notification-header p{font-size:13px}}.notification-status{align-items:center;background:#fff;border-left:4px solid #e0e0e0;border-radius:8px;box-shadow:0 1px 6px #0000001a;display:flex;font-size:14px;gap:12px;max-width:400px;min-height:30px;min-width:100px;overflow:hidden;padding:8px 12px;position:relative;transition:all .3s ease;width:-webkit-max-content;width:max-content}.notification-status:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.notification-status.enabled{border-left-color:#4caf50}.notification-status.ask-permission{border-left-color:#ff9800}.notification-status.requesting{border-left-color:#2196f3}.notification-status.blocked,.notification-status.error{border-left-color:#f44336}.notification-status.not-supported{border-left-color:#9e9e9e}.notification-status.checking{border-left-color:#2196f3}.notification-status button{background:#007bff;border:none;border-radius:4px;box-shadow:0 2px 4px #007bff33;color:#fff;cursor:pointer;font-size:13px;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.notification-status button:hover{background:#0056b3;box-shadow:0 4px 8px #007bff4d;transform:translateY(-1px)}.notification-status button:disabled{background:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}@media (max-width:768px){.notification-status{max-width:calc(100vw - 100px);min-width:120px}.notification-status button{font-size:12px;padding:5px 10px}}.notification-status.error{animation:pulse-widget 2s infinite}@keyframes pulse-widget{0%{box-shadow:0 1px 6px #0000001a}50%{box-shadow:0 4px 20px #f4433666}to{box-shadow:0 1px 6px #0000001a}}.notification-tokens-admin{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1400px;overflow-x:hidden;padding:20px;width:100%}.admin-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;gap:20px;justify-content:space-between;margin-bottom:30px;padding-bottom:15px}.admin-header h2{color:#2c3e50;flex:1 1;font-size:1.8rem;margin:0}.refresh-btn{align-items:center;background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:8px;height:36px;min-width:100px;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.refresh-btn:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24}.error-message,.success-message{font-weight:500;margin-bottom:20px;padding:12px 16px}.success-message{background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;color:#155724}.summary-section{background:#f8f9fa;border-radius:8px;margin-bottom:30px;padding:20px}.summary-section h3{color:#495057;margin-top:0}.summary-cards{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.summary-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a;min-width:120px;padding:20px;text-align:center}.summary-number{color:#007bff;font-size:2rem;font-weight:700;margin-bottom:5px}.summary-label{color:#6c757d;font-size:.9rem;letter-spacing:.5px;text-transform:uppercase}.platform-breakdown h4{color:#495057;margin-bottom:10px}.platform-stats{display:flex;flex-wrap:wrap;gap:15px}.platform-stat{background:#fff;border:1px solid #dee2e6;border-radius:6px;color:#495057;font-size:.9rem;padding:8px 12px}.tokens-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-sizing:border-box;margin-bottom:30px;overflow:hidden;width:100%}.tokens-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:20px}.tokens-header h3{color:#495057;margin:0}.bulk-actions{align-items:center;display:flex;gap:15px}.bulk-actions label{align-items:center;color:#495057;cursor:pointer;display:flex;gap:8px}.selection-info{color:#007bff;font-size:.9rem;font-weight:500}.loading{font-size:1.1rem}.loading,.no-tokens{color:#6c757d;padding:40px;text-align:center}.no-tokens p{line-height:1.5;margin:10px 0}.tokens-table-container{border:1px solid #dee2e6;border-radius:6px;box-sizing:border-box;margin-bottom:20px;max-width:calc(100vw - 40px);overflow-x:auto;width:100%}.tokens-table{border-collapse:collapse;font-size:.9rem;min-width:800px;width:100%}.tokens-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;padding:12px 8px;text-align:left;white-space:nowrap}.tokens-table td{border-bottom:1px solid #e9ecef;padding:12px 8px;vertical-align:middle}.tokens-table tr:hover{background:#f8f9fa}.tokens-table tr.selected{background:#e3f2fd}.user-info{display:flex;flex-direction:column;gap:2px}.user-info strong{color:#2c3e50}.user-info small{color:#6c757d;font-size:.8rem}.device-info{align-items:center;color:#495057;display:flex;gap:8px}.platform-badge{border-radius:4px;font-size:.8rem;font-weight:500;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.platform-android{background:#a5d6a7;color:#2e7d32}.platform-ios{background:#bbdefb;color:#1976d2}.platform-macos{background:#d1c4e9;color:#512da8}.platform-windows{background:#ffcc80;color:#f57c00}.platform-linux{background:#ffab91;color:#e64a19}.platform-unknown{background:#e0e0e0;color:#757575}.token-preview,.uuid{background:#f8f9fa;color:#495057;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:2px 6px}.age-badge,.token-preview,.uuid{border-radius:4px;font-size:.8rem}.age-badge{font-weight:500;padding:4px 8px}.age-badge.new{background:#d4edda;color:#155724}.age-badge.medium{background:#fff3cd;color:#856404}.age-badge.old{background:#f8d7da;color:#721c24}.action-buttons{display:flex;flex-wrap:wrap;gap:8px}.action-buttons button{border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 10px;transition:all .2s ease;white-space:nowrap}.test-btn{background:#28a745;color:#fff;position:relative}.test-btn:hover{background:#218838;transform:translateY(-1px)}.dropdown-toggle:after{margin-left:4px}.test-dropdown{display:inline-block;position:relative}.dropdown-menu{background:#fff;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 4px 12px #00000026;left:0;margin-top:2px;min-width:160px;overflow:hidden;position:absolute;top:100%;z-index:1000}.dropdown-item{background:#fff;border:none;border-bottom:1px solid #f1f3f4;color:#495057;cursor:pointer;display:block;font-size:.85rem;padding:8px 12px;text-align:left;transition:background-color .2s ease;width:100%}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background:#f8f9fa;color:#495057;transform:none}.dropdown-item:focus{background:#e3f2fd;outline:none}.delete-btn{background:#dc3545;color:#fff}.delete-btn:hover{background:#c82333;transform:translateY(-1px)}.delete-user-btn{background:#fd7e14;color:#fff}.delete-user-btn:hover{background:#e55a00;transform:translateY(-1px)}.admin-help{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:20px}.admin-help h3{color:#495057;margin-top:0}.admin-help ul{color:#6c757d;line-height:1.6}.admin-help li{margin-bottom:8px}.admin-help strong{color:#495057}@media (max-width:768px){.notification-tokens-admin{overflow-x:hidden;padding:15px}.admin-header{align-items:stretch;flex-direction:column;gap:15px}.admin-header h2{font-size:1.5rem}.refresh-btn{align-self:flex-start;width:auto}.summary-cards{justify-content:center}.tokens-header{align-items:stretch;flex-direction:column;gap:15px}.bulk-actions{justify-content:space-between}.tokens-table-container{border-left:none;border-radius:0;border-right:none;margin:0 -15px;max-width:calc(100vw - 30px)}.tokens-table{font-size:.8rem;min-width:900px}.tokens-table td,.tokens-table th{padding:8px 4px;white-space:nowrap}.action-buttons{flex-direction:column;gap:4px}.action-buttons button{font-size:.7rem;padding:4px 8px}}@media (max-width:480px){.tokens-table{min-width:1000px}.tokens-table td,.tokens-table th{padding:6px 3px}}
/*# sourceMappingURL=main.215e1571.css.map*/