*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;color:#e4e4e7;background-color:#18181b}#app{min-height:100vh;display:flex;flex-direction:column}header{background-color:#09090b;color:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000004d;border-bottom:1px solid #27272a}header h1{font-size:1.5rem;font-weight:500}.main-content{display:flex;flex:1;overflow:hidden}.dashboard-list{width:300px;background-color:#27272a;padding:0;overflow:hidden;border-right:1px solid #3f3f46;flex-shrink:0;transition:width .3s ease-in-out;position:relative;display:flex;flex-direction:column}.dashboard-list.collapsed{width:60px}.dashboard-list.collapsed .dashboard-list-header h2,.dashboard-list.collapsed .dashboard-name,.dashboard-list.collapsed .dashboard-description,.dashboard-list.collapsed .reload-btn{opacity:0;visibility:hidden}.dashboard-list.collapsed .nav-toggle-btn svg{transform:rotate(180deg)}.nav-toggle-btn{background-color:transparent;border:none;color:#e4e4e7;padding:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;min-width:40px;min-height:40px}.nav-toggle-btn:hover{background-color:#e4e4e71a}.nav-toggle-btn:active{transform:scale(.95)}.nav-toggle-btn svg{display:block;transition:transform .3s ease-in-out}.sidebar-top{padding:1.5rem;border-bottom:1px solid #3f3f46;background-color:#27272a}.sidebar-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dashboard-list.collapsed .sidebar-controls{justify-content:center}.sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.5rem .5rem 1.5rem 1.5rem}.dashboard-list h2{font-size:1.2rem;margin-bottom:1rem;color:#e4e4e7}.dashboard-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;transition:opacity .2s}.dashboard-list-header h2{margin-bottom:0;transition:opacity .2s,visibility .2s}.reload-btn{background-color:transparent;border:1px solid #52525b;color:#e4e4e7;padding:.5rem;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;min-width:32px;min-height:32px}.reload-btn:hover{background-color:#3f3f46;border-color:#71717a}.reload-btn:active{transform:scale(.95)}.reload-btn:disabled{opacity:.5;cursor:not-allowed}.reload-btn svg{display:block}.dashboard-list ul{list-style:none;overflow-y:auto;overflow-x:hidden;padding-right:.5rem;margin-right:0}.sidebar-content::-webkit-scrollbar{width:8px}.sidebar-content::-webkit-scrollbar-track{background:#3f3f46;border-radius:4px}.sidebar-content::-webkit-scrollbar-thumb{background:#52525b;border-radius:4px}.sidebar-content::-webkit-scrollbar-thumb:hover{background:#71717a}.dashboard-item{padding:1rem;margin-bottom:.5rem;margin-right:1rem;background-color:#3f3f46;border:2px solid #52525b;border-radius:6px;cursor:pointer;transition:all .2s ease-in-out;white-space:nowrap;overflow:hidden;display:flex;align-items:center;gap:.75rem;color:#e4e4e7}.dashboard-list.collapsed .dashboard-item{padding:.75rem;justify-content:center;gap:0;background-color:transparent;border:none;margin-right:0}.dashboard-list.collapsed .dashboard-item:hover{background-color:#e4e4e71a;transform:none;box-shadow:none}.dashboard-list.collapsed .dashboard-item.selected{background-color:#e4e4e726;border:none;box-shadow:none}.dashboard-icon{font-size:1.5rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:font-size .2s}.dashboard-list.collapsed .dashboard-icon{font-size:1.5rem;width:28px;height:28px}.dashboard-content{flex:1;min-width:0;transition:opacity .2s,visibility .2s}.dashboard-list.collapsed .dashboard-content{opacity:0;visibility:hidden;width:0;overflow:hidden}.dashboard-item:hover{border-color:#71717a;box-shadow:0 2px 8px #0000004d;transform:translate(2px)}.dashboard-item:active{transform:translate(2px) scale(.98)}.dashboard-item.selected{background-color:#6366f1;border-color:#6366f1;color:#fff;box-shadow:0 4px 12px #6366f166}.dashboard-item.selected:hover{transform:translate(0)}.dashboard-name{font-weight:600;margin-bottom:.25rem;font-size:1rem;transition:opacity .2s,visibility .2s}.dashboard-description{font-size:.85rem;opacity:.8;line-height:1.4;transition:opacity .2s,visibility .2s}.no-dashboards{color:#a1a1aa;font-style:italic;padding:1rem;text-align:center}.dashboard-container{flex:1;display:flex;flex-direction:column;position:relative;min-width:0;background-color:#18181b}.error-container{background-color:#450a0a;border:1px solid #7f1d1d;border-left:4px solid #dc2626;border-radius:4px;padding:1rem;margin:1rem;display:flex;flex-direction:column;gap:.5rem}.error-container.hidden{display:none}.error-container h3{color:#fca5a5;margin-bottom:.5rem;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.error-container h3:before{content:"⚠";font-size:1.2rem}.error-container p{color:#fca5a5;margin-bottom:.5rem;font-size:.9rem}.error-container button{background-color:#dc2626;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s;align-self:flex-start}.error-container button:hover{background-color:#b91c1c}.error-container button:active{transform:scale(.98)}#iframe-wrapper{flex:1;padding:1rem;display:flex;flex-direction:column;min-height:0;background-color:#18181b}#iframe-wrapper iframe{width:100%;height:100%;min-height:600px;border:1px solid #3f3f46;border-radius:4px;background-color:#18181b;box-shadow:0 2px 4px #0000004d}@media(max-width:1024px){.dashboard-list{position:fixed;top:0;left:0;height:100vh;z-index:1000;box-shadow:2px 0 8px #00000026}.dashboard-list.collapsed{width:60px}.dashboard-item{margin-bottom:.5rem}#iframe-wrapper iframe{min-height:500px}}@media(max-width:768px){header{padding:.75rem 1rem}header h1{font-size:1.25rem}.dashboard-list{padding:1rem;max-height:200px}.dashboard-list h2{font-size:1rem}.dashboard-item{padding:.75rem}.dashboard-name{font-size:.9rem}.dashboard-description{font-size:.8rem}#iframe-wrapper{padding:.5rem}#iframe-wrapper iframe{min-height:400px}.error-container{margin:.5rem;padding:.75rem}}@media(max-width:480px){header h1{font-size:1.1rem}.dashboard-list{padding:.75rem}.dashboard-item{padding:.5rem}#iframe-wrapper iframe{min-height:350px}}
