:root{--black: #000000;--bg: #050510;--surface: #0a0a1a;--surface-hover: #111128;--border: #1a1a3e;--border-glow: #00ffff33;--cyan: #00ffff;--magenta: #ff00ff;--purple: #8b5cf6;--green: #00ff88;--red: #ff4444;--yellow: #fbbf24;--white: #e0e0ff;--muted: #6b7280;--font: "JetBrains Mono", monospace;--glow-cyan: 0 0 10px #00ffff44, 0 0 30px #00ffff22;--glow-magenta: 0 0 10px #ff00ff44, 0 0 30px #ff00ff22;--glow-purple: 0 0 10px #8b5cf644, 0 0 30px #8b5cf622;--glow-text-cyan: 0 0 8px #00ffff66;--glow-text-magenta: 0 0 8px #ff00ff66}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;background:var(--bg);color:var(--white);font-family:var(--font);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,#00ffff03 2px,#00ffff03 4px);pointer-events:none;z-index:9999}body:after{content:"";position:fixed;inset:0;background-image:linear-gradient(#00ffff06 1px,transparent 1px),linear-gradient(90deg,#00ffff06 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:9998}a{color:var(--cyan);text-decoration:none}a:hover{text-shadow:var(--glow-text-cyan)}.page{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;border-bottom:1px solid var(--border);background:var(--black);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:1rem}.logo{font-size:1.4rem;font-weight:700;color:var(--cyan);text-shadow:var(--glow-text-cyan);letter-spacing:2px;text-transform:uppercase}.nav{display:flex;gap:.5rem}.nav-link{padding:.4rem .8rem;border-radius:4px;color:var(--muted);font-size:.85rem;cursor:pointer;transition:all .2s;background:none;border:none;font-family:var(--font)}.nav-link:hover,.nav-link.active{color:var(--cyan);background:var(--surface);text-shadow:var(--glow-text-cyan)}.header-right{display:flex;align-items:center;gap:1rem}.user-info{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--muted)}.user-avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--border)}.content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.2rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--white);font-family:var(--font);font-size:.85rem;cursor:pointer;transition:all .2s}.btn:hover{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.btn-primary{background:var(--cyan);color:var(--black);border-color:var(--cyan);font-weight:600}.btn-primary:hover{background:#3ff;box-shadow:var(--glow-cyan)}.btn-danger{border-color:var(--red);color:var(--red)}.btn-danger:hover{background:var(--red);color:var(--black)}.btn-small{padding:.25rem .6rem;font-size:.75rem}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:3rem;max-width:400px;width:100%;text-align:center}.login-logo{font-size:2.5rem;font-weight:700;color:var(--cyan);text-shadow:var(--glow-text-cyan);letter-spacing:4px;margin-bottom:.5rem}.login-subtitle{color:var(--muted);font-size:.9rem;margin-bottom:2rem}.login-error{background:#f442;border:1px solid var(--red);border-radius:4px;padding:.6rem 1rem;color:var(--red);font-size:.85rem;margin-bottom:1.5rem}.google-btn{display:flex;align-items:center;justify-content:center;gap:.8rem;width:100%;padding:.8rem;background:var(--surface-hover);border:1px solid var(--border);border-radius:4px;color:var(--white);font-family:var(--font);font-size:.95rem;cursor:pointer;transition:all .2s}.google-btn:hover{border-color:var(--cyan);box-shadow:var(--glow-cyan);text-shadow:var(--glow-text-cyan)}.google-btn svg{width:20px;height:20px}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.dashboard-title{font-size:1.2rem;font-weight:600;color:var(--cyan);text-shadow:var(--glow-text-cyan)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.tile{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:block}.tile:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--tile-color, var(--cyan));opacity:.6;transition:opacity .2s}.tile:hover{border-color:var(--tile-color, var(--cyan));box-shadow:0 0 15px color-mix(in srgb,var(--tile-color, var(--cyan)) 25%,transparent);transform:translateY(-2px)}.tile:hover:before{opacity:1}.tile-color-cyan{--tile-color: var(--cyan)}.tile-color-magenta{--tile-color: var(--magenta)}.tile-color-purple{--tile-color: var(--purple)}.tile-icon{font-size:2rem;margin-bottom:.8rem}.tile-name{font-size:1.05rem;font-weight:600;color:var(--white);margin-bottom:.3rem}.tile-desc{font-size:.8rem;color:var(--muted);margin-bottom:.8rem}.tile-meta{display:flex;align-items:center;gap:.6rem;font-size:.75rem;color:var(--muted)}.tile-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.1rem .4rem;border-radius:3px;font-size:.7rem}.badge-pinned{background:var(--cyan);color:var(--black)}.badge-no-access{background:var(--red);color:var(--black)}.tile-locked{opacity:.5;cursor:not-allowed}.tile-locked:hover{transform:none;border-color:var(--border);box-shadow:none}.section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.section-title{font-size:1rem;font-weight:600;color:var(--cyan);text-shadow:var(--glow-text-cyan);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.field-row{display:flex;align-items:center;gap:1rem;padding:.5rem 0}.field-label{color:var(--muted);font-size:.85rem;min-width:120px}.field-value{color:var(--white);font-size:.85rem}.input{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.4rem .8rem;color:var(--white);font-family:var(--font);font-size:.85rem;outline:none;transition:border-color .2s}.input:focus{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}.admin-tab{padding:.4rem 1rem;border-radius:4px 4px 0 0;background:none;border:none;color:var(--muted);font-family:var(--font);font-size:.85rem;cursor:pointer;transition:all .2s}.admin-tab:hover,.admin-tab.active{color:var(--cyan);background:var(--surface)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--border);font-size:.85rem}th{color:var(--cyan);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:1px}td{color:var(--white)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.4rem}.status-active{background:var(--green);box-shadow:0 0 6px var(--green)}.status-inactive{background:var(--red);box-shadow:0 0 6px var(--red)}.matrix-grid{display:grid;gap:0;overflow-x:auto}.matrix-cell{display:flex;align-items:center;justify-content:center;padding:.4rem}.matrix-check{width:18px;height:18px;cursor:pointer;accent-color:var(--cyan)}.loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--muted)}.loading:after{content:"";width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:spin .6s linear infinite;margin-left:.8rem}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:3rem;color:var(--muted)}.toast{position:fixed;bottom:2rem;right:2rem;background:var(--surface);border:1px solid var(--cyan);border-radius:4px;padding:.8rem 1.2rem;color:var(--white);font-size:.85rem;box-shadow:var(--glow-cyan);z-index:10000;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.header{padding:.8rem 1rem;flex-wrap:wrap;gap:.5rem}.content{padding:1rem}.tile-grid{grid-template-columns:1fr}.login-card{padding:2rem}.field-row{flex-direction:column;align-items:flex-start;gap:.3rem}.field-label{min-width:unset}}@media(max-width:480px){.nav{display:none}.header-right{gap:.5rem}}
