*{padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{align-items:center;display:flex;justify-content:center;min-height:100vh}.login-container{max-width:450px;padding:20px;width:100%}.login-card{animation:fadeIn .5s ease-in;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:40px}.login-title{color:#333;font-size:28px;font-weight:700;margin-bottom:8px;text-align:center}.login-subtitle{color:#666;font-size:14px;margin-bottom:32px;text-align:center}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#333;font-size:14px}.login-form .form-group input{background-color:#fafafa!important;border:2px solid #d0d0d0!important;border-radius:8px;color:#333!important;font-size:16px;outline:none;padding:12px 16px;transition:all .3s ease}.login-form .form-group input:hover{background-color:#fff!important;border-color:#b0b0b0!important}.login-form .form-group input:focus{background-color:#fff!important;border-color:#667eea!important;box-shadow:0 0 0 3px #667eea1a}.login-form .form-group input:disabled{background-color:#f5f5f5!important;color:#999!important;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:14px;padding:12px;text-align:center}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:8px;padding:14px;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.login-button:hover:not(:disabled){box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6}.login-info{border-top:1px solid #e0e0e0;margin-top:24px;padding-top:24px;text-align:center}.login-info p{color:#666;font-size:13px;margin:4px 0}.login-info strong{color:#667eea;font-family:monospace}*{box-sizing:border-box}:root[data-theme=light]{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-tertiary:#f8f9fa;--text-primary:#333;--text-secondary:#444;--text-tertiary:#555;--text-muted:#666;--border-color:#e0e0e0;--border-color-accent:#667eea;--accent-primary:#667eea;--accent-secondary:#764ba2;--error-bg:#fee;--error-border:#fcc;--error-text:#c33;--shadow:#0000001a;--shadow-strong:#0003}.diagram-viewer{background:var(--bg-primary);display:flex;flex-direction:column;min-height:100vh;transition:background-color .3s ease;width:100%}.viewer-container{grid-gap:1rem;display:grid;flex:1 1;gap:1rem;grid-template-columns:280px 1fr;max-width:100%;padding:1rem;position:relative;width:100%}.mobile-overlay{display:none}.viewer-header{background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%);box-shadow:0 2px 10px var(--shadow);color:#fff;flex-shrink:0;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{justify-content:space-between;max-width:100%;padding:0 1rem;width:100%}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:1rem}.viewer-header h1{font-size:1.5rem;font-weight:700;margin:0}.mobile-menu-button{background:#0000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:none;padding:.5rem;transition:background-color .3s ease}.mobile-menu-button:hover{background:#fff3}.header-actions{align-items:center;display:flex;gap:.75rem}.admin-button,.logout-button,.theme-toggle{align-items:center;background:#fff3;border:2px solid #fff;border-radius:8px;color:#fff;cursor:pointer;display:flex;justify-content:center;transition:all .3s ease}.admin-button,.logout-button{font-size:.875rem;font-weight:600;gap:.5rem;padding:.5rem 1rem}.theme-toggle{padding:.5rem}.admin-button:hover,.logout-button:hover,.theme-toggle:hover{background:#fff;color:var(--accent-primary)}.admin-button:hover{transform:translateY(-2px)}.sidebar{background:var(--bg-secondary);border-radius:12px;box-shadow:0 2px 8px var(--shadow);height:-webkit-fit-content;height:fit-content;max-height:calc(100vh - 6.5rem);overflow-y:auto;padding:1rem;position:-webkit-sticky;position:sticky;top:5.5rem}.home-button,.sidebar{transition:all .3s ease}.home-button{align-items:center;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:.75rem;margin-bottom:1rem;padding:.875rem;text-align:left;width:100%}.home-button:hover{background:var(--accent-primary);transform:translateX(4px)}.home-button.active,.home-button:hover{border-color:var(--border-color-accent);color:#fff}.home-button.active{background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%)}.home-button svg{flex-shrink:0}.diagram-list{gap:.5rem}.category-group,.diagram-list{display:flex;flex-direction:column}.category-group{gap:.25rem}.category-header{align-items:center;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9375rem;font-weight:700;gap:.5rem;padding:.75rem;text-align:left;transition:all .3s ease}.category-header:hover{background:var(--accent-primary);border-color:var(--border-color-accent);color:#fff}.category-header .chevron{flex-shrink:0;transition:transform .3s ease}.category-header.expanded .chevron{transform:rotate(90deg)}.category-content{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding-left:1rem}.subcategory-group{display:flex;flex-direction:column;gap:.25rem}.subcategory-header{align-items:center;background:var(--bg-tertiary);border:1.5px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.625rem .75rem;text-align:left;transition:all .3s ease}.subcategory-header:hover{background:var(--bg-primary);border-color:var(--border-color-accent);color:var(--accent-primary)}.subcategory-header .chevron{flex-shrink:0;transition:transform .3s ease}.subcategory-header.expanded .chevron{transform:rotate(90deg)}.subcategory-content{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding-left:1rem}.diagram-item{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;padding:.875rem;text-align:left;transition:all .3s ease}.diagram-item:hover{background:var(--accent-primary);transform:translateX(4px)}.diagram-item.active,.diagram-item:hover{border-color:var(--border-color-accent);color:#fff}.diagram-item.active{background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%)}.diagram-item h3{font-size:.9375rem;font-weight:600;line-height:1.4;margin:0}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track{background:var(--bg-primary)}.sidebar::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--border-color-accent)}.sidebar{scrollbar-color:var(--border-color) var(--bg-primary);scrollbar-width:thin}.content{background:var(--bg-secondary);border-radius:12px;box-shadow:0 2px 8px var(--shadow);min-height:calc(100vh - 8rem);overflow-x:auto;padding:2rem;transition:background-color .3s ease}.content,.loading{display:flex;flex-direction:column;width:100%}.loading{align-items:center;color:var(--text-muted);flex:1 1;justify-content:center;padding:3rem 1rem}.spinner{animation:spin 1s linear infinite;border-top:4px solid var(--border-color);border:4px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-primary);height:50px;margin-bottom:1rem;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-box{background:var(--error-bg);border:2px solid var(--error-border);border-radius:8px;color:var(--error-text);padding:1.25rem;width:100%}.error-box h3{font-size:1.125rem;margin:0 0 .625rem}.error-box p{margin:0}.diagram-content{animation:fadeIn .5s ease-in;width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.text-content{color:var(--text-secondary);line-height:1.8;margin-bottom:2rem}.text-content h1{border-bottom:3px solid var(--border-color-accent);color:var(--text-primary);font-size:2rem;font-weight:700;margin:2rem 0 1rem;padding-bottom:.5rem}.text-content h1:first-child{margin-top:0}.text-content h2{border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-size:1.5rem;font-weight:600;margin:1.75rem 0 .875rem;padding-bottom:.375rem}.text-content h3{font-size:1.25rem;margin:1.5rem 0 .75rem}.text-content h3,.text-content h4{color:var(--text-tertiary);font-weight:600}.text-content h4{font-size:1.125rem;margin:1.25rem 0 .625rem}.text-content h5{color:var(--text-tertiary);font-size:1rem;font-weight:600;margin:1rem 0 .5rem}.text-content h6{color:var(--text-muted);font-size:.875rem;font-weight:600;margin:.875rem 0 .5rem}.text-content p{color:var(--text-secondary);margin:.75rem 0}.text-content ul{margin:1rem 0;padding-left:1.5rem}.text-content li{color:var(--text-secondary);margin:.5rem 0}.text-content strong{color:var(--accent-primary);font-weight:600}.text-content table.markdown-table{background:var(--bg-tertiary);border-collapse:collapse;border-radius:8px;box-shadow:0 2px 8px var(--shadow);font-size:.95rem;margin:1.5rem 0;overflow:hidden;width:100%}.text-content table.markdown-table thead{background:var(--accent-primary);color:#fff}.text-content table.markdown-table th{border-bottom:2px solid var(--border-color-accent);font-weight:600;padding:1rem;text-align:left}.text-content table.markdown-table td{border-bottom:1px solid var(--border-color);color:var(--text-secondary);padding:.875rem 1rem}.text-content table.markdown-table tbody tr:last-child td{border-bottom:none}.text-content table.markdown-table tbody tr{transition:background-color .2s ease}.text-content table.markdown-table tbody tr:hover{background:var(--bg-secondary)}.text-content table.markdown-table strong{color:var(--accent-primary);font-weight:600}.text-content table.markdown-table em{color:var(--text-tertiary);font-style:italic}.text-content table.markdown-table code{background:var(--bg-secondary);border-radius:4px;color:var(--accent-secondary);font-family:Courier New,monospace;font-size:.9em;padding:.125rem .375rem}@media (max-width:768px){.text-content table.markdown-table{font-size:.85rem}.text-content table.markdown-table td,.text-content table.markdown-table th{padding:.625rem .75rem}}.diagram-content svg,.text-content svg{height:auto;max-width:100%}.home-view{animation:fadeIn .5s ease-in}.home-view h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2.5rem;font-weight:700;margin:0 0 1rem}.home-description{color:var(--text-secondary);font-size:1.125rem;margin-bottom:3rem}.home-categories{display:flex;flex-direction:column;gap:3rem}.home-category-card{background:var(--bg-tertiary);border-radius:12px;box-shadow:0 2px 8px var(--shadow);padding:2rem}.home-category-card h2{border-bottom:3px solid var(--border-color-accent);color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0 0 2rem;padding-bottom:.75rem}.home-subcategory{margin-bottom:2rem}.home-subcategory:last-child{margin-bottom:0}.home-subcategory h3{border-left:4px solid var(--accent-primary);color:var(--text-secondary);font-size:1.25rem;font-weight:600;margin:0 0 1.5rem;padding-left:1rem}.home-diagrams-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.home-diagram-card{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9375rem;font-weight:600;gap:1rem;padding:1.25rem;text-align:left;transition:all .3s ease}.home-diagram-card:hover{background:var(--accent-primary);border-color:var(--border-color-accent);box-shadow:0 4px 12px var(--shadow-strong);color:#fff;transform:translateY(-4px)}.home-diagram-card svg{flex-shrink:0}@media (max-width:1024px){.viewer-container{grid-template-columns:250px 1fr}.sidebar{padding:.875rem}.content{padding:1.5rem}}@media (max-width:768px){.mobile-menu-button{display:block}.viewer-header{padding:.75rem}.header-content{padding:0}.viewer-header h1{font-size:1.125rem}.header-actions{gap:.5rem}.admin-button{font-size:.8125rem;padding:.5rem .75rem}.admin-button svg{height:16px;width:16px}.theme-toggle{padding:.5rem}.theme-toggle svg{height:18px;width:18px}.logout-button{font-size:.8125rem;padding:.5rem .75rem}.viewer-container{grid-template-columns:1fr;padding:.75rem}.sidebar{-webkit-overflow-scrolling:touch;border-radius:0;height:100vh;left:-100%;margin:0;max-height:100vh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:1rem 1rem calc(2rem + env(safe-area-inset-bottom, 0px));position:fixed;top:0;transition:left .3s ease;width:280px;z-index:1000}.sidebar.mobile-open{left:0}.mobile-overlay{background:#00000080;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:999}.category-header{font-size:.875rem;padding:.625rem}.subcategory-header{font-size:.8125rem;padding:.5rem .625rem}.home-button{font-size:.9375rem;padding:.75rem}.diagram-item h3{font-size:.875rem}.content{min-height:calc(100vh - 10rem);padding:1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom, 0px))}.text-content h1{font-size:1.5rem}.text-content h2{font-size:1.25rem}.text-content h3{font-size:1.125rem}.text-content h4{font-size:1rem}.text-content h5{font-size:.9375rem}.text-content h6{font-size:.875rem}.home-view h1{font-size:2rem}.home-description{font-size:1rem;margin-bottom:2rem}.home-category-card{padding:1.5rem}.home-category-card h2{font-size:1.5rem;margin-bottom:1.5rem}.home-subcategory h3{font-size:1.125rem;margin-bottom:1rem}.home-diagrams-grid{grid-template-columns:1fr}.home-diagram-card{padding:1rem}}@media (max-width:480px){.viewer-header{padding:.625rem .5rem}.header-content{gap:.5rem;padding:0}.header-left{flex:1 1;gap:.5rem;min-width:0}.viewer-header h1{font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{flex-shrink:0;gap:.375rem}.admin-button{font-size:.75rem;gap:.25rem;padding:.4rem .5rem}.admin-button svg{height:14px;width:14px}.theme-toggle{padding:.4rem}.theme-toggle svg{height:16px;width:16px}.logout-button{font-size:.75rem;padding:.4rem .5rem}.viewer-container{padding:.5rem}.sidebar{padding:.875rem .875rem calc(1.5rem + env(safe-area-inset-bottom, 0px));width:260px}.content{padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px))}.text-content h1{font-size:1.375rem}.text-content h2{font-size:1.125rem}.text-content h3{font-size:1rem}.text-content h4{font-size:.9375rem}.text-content h5{font-size:.875rem}.text-content h6{font-size:.8125rem}.home-view h1{font-size:1.75rem}.home-category-card{padding:1.25rem}.home-category-card h2{font-size:1.25rem;margin-bottom:1.25rem}.home-subcategory h3{font-size:1rem}.home-diagram-card{font-size:.875rem;padding:.875rem}}@media (max-width:360px){.viewer-header h1{font-size:.875rem}.mobile-menu-button{padding:.375rem}.admin-button,.logout-button{justify-content:center;min-width:36px;padding:.5rem}.admin-button span,.logout-button span{display:none}.logout-button svg{display:block!important;height:18px;width:18px}}.mermaid-container{background:var(--bg-tertiary);border-radius:12px;box-shadow:0 4px 12px var(--shadow);margin:30px 0;padding:20px;position:relative;transition:background-color .3s ease}.diagram-subtitle{border-bottom:2px solid var(--border-color-accent);color:var(--text-primary);font-size:18px;font-weight:600;margin-bottom:20px;padding-bottom:10px}.mermaid-wrapper{background:#0000;border-radius:8px;overflow-x:auto;padding:20px}.mermaid-diagram{align-items:center;cursor:zoom-in;display:flex;justify-content:center;min-height:200px;width:100%}.mermaid-diagram svg{background:#0000!important;display:block;height:auto;margin:0 auto;max-width:100%}:root[data-theme=dark] .mermaid-diagram svg{filter:brightness(1.1)}.mermaid-diagram :global(.edgeLabel),.mermaid-diagram [class*=edgeLabel]{background-color:var(--bg-secondary)!important}:root[data-theme=dark] .mermaid-diagram :global(.edgeLabel),:root[data-theme=dark] .mermaid-diagram [class*=edgeLabel]{background-color:var(--bg-secondary)!important}.diagram-zoom-overlay{background:#000000f2;display:none;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:10000}.diagram-zoom-overlay.active{display:block}.diagram-zoom-overlay .react-transform-wrapper{height:100%!important;width:100%!important}.diagram-zoom-overlay .react-transform-component{align-items:center!important;display:flex!important;height:100%!important;justify-content:center!important;width:100%!important}.diagram-zoom-overlay svg{max-height:none!important;max-width:none!important}.diagram-zoom-close{align-items:center;background:#dc3545;border:3px solid #fff;border-radius:50%;box-shadow:0 4px 16px #00000080;color:#fff;cursor:pointer;display:flex;font-size:36px;font-weight:700;height:60px;justify-content:center;line-height:1;pointer-events:auto;position:fixed;right:20px;top:20px;transition:all .2s ease;width:60px;z-index:10001}.diagram-zoom-close:hover{background:#ff1744;box-shadow:0 6px 20px #ff174499;transform:scale(1.15) rotate(90deg)}.diagram-zoom-close:active{transform:scale(1.05) rotate(90deg)}.diagram-zoom-instructions{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#667eeaf2;border-radius:30px;box-shadow:0 4px 16px #0006;color:#fff;font-size:.9rem;font-weight:500;padding:.875rem 1.75rem;pointer-events:none;top:20px}.diagram-zoom-controls,.diagram-zoom-instructions{display:flex;gap:1rem;left:50%;position:fixed;transform:translateX(-50%);z-index:10001}.diagram-zoom-controls{bottom:30px;flex-direction:row;pointer-events:auto}.diagram-zoom-controls button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#667eeaf2;border:3px solid #fff;border-radius:50%;box-shadow:0 4px 16px #0006;color:#fff;cursor:pointer;display:flex;font-size:26px;font-weight:700;height:60px;justify-content:center;line-height:1;pointer-events:auto;transition:all .2s ease;width:60px}.diagram-zoom-controls button:hover{background:#fff;box-shadow:0 6px 20px #667eea99;color:var(--accent-primary);transform:scale(1.2)}.diagram-zoom-controls button:active{transform:scale(1.1)}@media (max-width:768px){.diagram-zoom-instructions{flex-direction:column;font-size:.8rem;gap:.4rem;padding:.6rem 1.2rem;text-align:center;top:15px}.diagram-zoom-controls{bottom:20px;gap:.75rem}.diagram-zoom-controls button{border-width:2.5px;font-size:24px;height:54px;width:54px}.diagram-zoom-close{border-width:2.5px;font-size:32px;height:54px;right:15px;top:15px;width:54px}}@media (max-width:480px){.diagram-zoom-instructions{font-size:.7rem;gap:.3rem;padding:.5rem 1rem;top:10px}.diagram-zoom-controls{bottom:15px;gap:.5rem}.diagram-zoom-controls button{border-width:2px;font-size:22px;height:50px;width:50px}.diagram-zoom-close{border-width:2px;font-size:28px;height:50px;right:10px;top:10px;width:50px}}@media (min-width:769px){.diagram-zoom-overlay{cursor:default}}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.code-block-container{background:#1e1e1e;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:1.5rem 0;overflow:hidden}.code-block-header{align-items:center;background:#2d2d2d;border-bottom:1px solid #3a3a3a;display:flex;justify-content:space-between;padding:.75rem 1rem}.code-language{color:#9cdcfe;font-size:.875rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.copy-button{align-items:center;background:#0000;border:1px solid #444;border-radius:4px;color:#ccc;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.4rem .75rem;transition:all .2s ease}.copy-button:hover{background:#3a3a3a;border-color:#555;color:#fff}.copy-button:active{transform:scale(.95)}.copy-button.copied{background:#4caf50;border-color:#4caf50;color:#fff}.code-block-container pre{background:#1e1e1e;font-size:.9rem;line-height:1.6;margin:0;overflow-x:auto;padding:1.5rem}.code-block-container code{background:#0000;color:#d4d4d4;font-family:Consolas,Monaco,Courier New,monospace}.code-block-container pre::-webkit-scrollbar{height:8px}.code-block-container pre::-webkit-scrollbar-track{background:#1e1e1e}.code-block-container pre::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.code-block-container pre::-webkit-scrollbar-thumb:hover{background:#666}[data-theme=light] .code-block-container{background:#f5f5f5;border-color:#e0e0e0}[data-theme=light] .code-block-header{background:#e8e8e8;border-bottom-color:#d0d0d0}[data-theme=light] .code-language{color:#06c}[data-theme=light] .copy-button{border-color:silver;color:#333}[data-theme=light] .copy-button:hover{background:#d8d8d8;border-color:#a0a0a0;color:#000}@media (max-width:768px){.code-block-container pre{font-size:.85rem;padding:1rem}.code-block-header{padding:.6rem .8rem}.code-language,.copy-button{font-size:.8rem}.copy-button{padding:.3rem .6rem}}:root:not([data-theme]),:root[data-theme=light]{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-tertiary:#f8f9fa;--text-primary:#333;--text-secondary:#444;--text-tertiary:#555;--text-muted:#666;--border-color:#e0e0e0;--border-color-accent:#667eea;--accent-primary:#667eea;--accent-secondary:#764ba2;--error-bg:#fee;--error-border:#fcc;--error-text:#c33;--shadow:#0000001a;--shadow-strong:#0003}:root[data-theme=dark]{--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-tertiary:#0f3460;--text-primary:#e0e0e0;--text-secondary:#d0d0d0;--text-tertiary:silver;--text-muted:#a0a0a0;--border-color:#2d3561;--border-color-accent:#667eea;--accent-primary:#667eea;--accent-secondary:#764ba2;--error-bg:#4a1a1a;--error-border:#8a3a3a;--error-text:#ff6b6b;--shadow:#0000004d;--shadow-strong:#00000080}.admin-panel{background:var(--bg-primary);display:flex;flex-direction:column;min-height:100vh;width:100%}.admin-header{align-items:center;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.admin-header h1{font-size:1.75rem;margin:0}.admin-header-actions{display:flex;gap:1rem}.admin-content{flex:1 1;margin:0 auto;max-width:1400px;padding:2rem 2rem calc(2rem + env(safe-area-inset-bottom, 0px));width:100%}.admin-tabs{border-bottom:2px solid var(--border-color);display:flex;gap:.5rem;margin-bottom:2rem}.tab-button{background:#0000;border:none;border-bottom:3px solid #0000;color:var(--text-muted);cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.tab-button.active{border-bottom-color:var(--accent-primary);color:var(--accent-primary)}.tab-button:hover{color:var(--text-primary)}.tab-content{animation:fadeIn .3s ease}.content-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.content-header h2{color:var(--text-primary);margin:0}.btn-logout,.btn-primary,.btn-secondary,.btn-sm{border:none;border-radius:8px;cursor:pointer;font-size:.9375rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-secondary);transform:translateY(-2px)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background:var(--border-color)}.btn-logout{background:#fff3;color:#fff}.btn-logout:hover{background:#fff;color:var(--accent-primary)}.btn-sm{font-size:.875rem;margin-right:.5rem;padding:.5rem 1rem}.btn-edit{background:#667eea;color:#fff}.btn-edit:hover{background:#5568d3}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-danger:disabled{background:#ccc;cursor:not-allowed}.btn-warn{background:#f59e0b;color:#fff}.btn-warn:hover{background:#d97706}.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669}.admin-table{background:var(--bg-secondary);border-radius:12px;box-shadow:0 2px 8px var(--shadow);overflow:hidden;width:100%}.admin-table thead{background:var(--bg-tertiary)}.admin-table th{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-weight:600;padding:1rem;text-align:left}.admin-table td{border-bottom:1px solid var(--border-color);color:var(--text-secondary);padding:1rem}.admin-table tbody tr:hover{background:var(--bg-tertiary)}.status-badge{border-radius:12px;font-size:.875rem;font-weight:600;padding:.25rem .75rem}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.badge-super{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;color:#fff;font-size:.75rem;font-weight:700;margin-left:.5rem;padding:.25rem .5rem}.modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:10000}.modal-content{background:var(--bg-secondary);border-radius:12px;box-shadow:0 8px 32px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:2rem 2rem calc(2rem + env(safe-area-inset-bottom, 0px));width:100%}.modal-large{max-width:700px}.modal-content h2{color:var(--text-primary);margin:0 0 1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{color:var(--text-primary);display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:16px;padding:.75rem;width:100%}.form-group input:focus,.form-group select:focus{border-color:var(--accent-primary);outline:none}.modules-list{background:var(--bg-primary);border-radius:8px;max-height:400px;overflow-y:auto;padding:1rem}.category-section{border-bottom:2px solid var(--border-color);margin-bottom:1.5rem;padding-bottom:1.5rem}.category-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.category-title{border-left:4px solid var(--accent-primary);color:var(--accent-primary);font-size:1rem;font-weight:700;margin:0 0 1rem;padding-left:.5rem}.subcategory-section{margin-bottom:1rem;margin-left:1rem}.subcategory-title{border-left:3px solid var(--border-color);color:var(--text-secondary);font-size:.875rem;font-weight:600;margin:0 0 .75rem;padding-left:.5rem}.modules-grid{grid-gap:.75rem;background:var(--bg-tertiary);border-radius:6px;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));padding:.75rem}.checkbox-label{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:.5rem;padding:.5rem;transition:background .2s ease}.checkbox-label:hover{background:var(--bg-tertiary)}.checkbox-label input[type=checkbox]{cursor:pointer;width:auto}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.admin-loading{align-items:center;color:var(--text-muted);display:flex;font-size:1.25rem;height:100vh;justify-content:center}.table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}@media (max-width:1024px){.admin-header h1{font-size:1.5rem}.admin-content{padding:1.5rem}}@media (max-width:768px){.admin-header{padding:1rem}.admin-header h1{font-size:1.25rem;margin-bottom:.5rem}.admin-header-actions{flex-direction:row;gap:.5rem;justify-content:center;width:100%}.admin-header-actions button{flex:1 1;font-size:.8125rem;padding:.625rem .75rem}.admin-content{padding:1rem}.admin-tabs{-webkit-overflow-scrolling:touch;margin-bottom:1.5rem;overflow-x:auto}.tab-button{font-size:.9375rem;padding:.75rem 1.5rem;white-space:nowrap}.content-header{align-items:stretch;flex-direction:column;gap:1rem}.content-header h2{font-size:1.25rem}.btn-primary{width:100%}.admin-table{font-size:.8125rem;min-width:600px}.admin-table td,.admin-table th{padding:.75rem .5rem;white-space:nowrap}.admin-table td:last-child{white-space:normal}.btn-sm{display:inline-block;font-size:.75rem;margin-bottom:.25rem;margin-right:.25rem;padding:.375rem .625rem}.modal-content{margin:1rem;padding:1.5rem}.modal-content h2{font-size:1.25rem;margin-bottom:1.25rem}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}.modules-grid{grid-template-columns:1fr;max-height:250px;padding:.75rem}}@media (max-width:480px){.admin-header{padding:.75rem}.admin-header h1{font-size:1.125rem}.admin-header-actions{flex-direction:column;gap:.5rem}.admin-header-actions button{font-size:.75rem;padding:.5rem;width:100%}.admin-content{padding:.75rem}.tab-button{font-size:.875rem;padding:.625rem 1rem}.content-header h2{font-size:1.125rem}.admin-table{font-size:.75rem;min-width:550px}.admin-table td,.admin-table th{padding:.625rem .375rem}.btn-sm{font-size:.6875rem;padding:.3125rem .5rem}.status-badge{font-size:.75rem;padding:.1875rem .5rem}.badge-super{font-size:.625rem;padding:.1875rem .375rem}.modal-content{margin:.5rem;padding:1.25rem}.modal-content h2{font-size:1.125rem}.form-group{margin-bottom:1.25rem}.form-group label{font-size:.875rem}.modules-grid{max-height:200px}.checkbox-label{font-size:.875rem;padding:.375rem}}
/*# sourceMappingURL=main.26561e5e.css.map*/