@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#0f1117;--card:#161b22;--card2:#1c2130;--txt:#f8fafc;--muted:#94a3b8;--dim:#475569;--p:#6366f1;--ph:#4f46e5;--border:rgba(255,255,255,0.07);--ring:rgba(99,102,241,0.4)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--txt);min-height:100vh;line-height:1.5}
a{color:var(--p);text-decoration:none} a:hover{color:#818cf8}
/* HEADER */
header{display:flex;justify-content:space-between;align-items:center;height:64px;padding:0 24px;background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,0.25);position:sticky;top:0;z-index:50}
/* USER DROPDOWN */
.user-wrap{position:relative}
.user-btn{display:flex;align-items:center;gap:8px;color:var(--txt);font-size:0.9em;font-weight:500;padding:8px 13px;border-radius:9px;background:rgba(255,255,255,0.05);border:1px solid var(--border);cursor:pointer;transition:background .2s;font-family:inherit}
.user-btn:hover{background:rgba(255,255,255,0.09)}
.caret{opacity:.5;transition:transform .2s;margin-left:2px}
.user-wrap.open .caret{transform:rotate(180deg)}
.dd{display:none;position:absolute;right:0;top:calc(100% + 10px);background:#151c28;border:1px solid var(--border);border-radius:14px;min-width:240px;box-shadow:0 20px 56px rgba(0,0,0,.6);z-index:999;overflow:hidden}
.user-wrap.open .dd{display:block;animation:dd .15s ease-out}
@keyframes dd{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.dd-hdr{padding:15px 17px 13px;border-bottom:1px solid var(--border)}
.dd-name{font-weight:700;font-size:.98em;margin-bottom:7px}
.role-badge{display:inline-flex;align-items:center;gap:5px;font-size:.72em;font-weight:700;padding:3px 10px;border-radius:20px;letter-spacing:.03em;margin-bottom:9px}
.perm-list{list-style:none}
.perm-list li{font-size:.77em;color:var(--muted);padding:2px 0;display:flex;align-items:center;gap:6px}
.perm-list li.ok{color:#cbd5e1}
.pcheck{width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:9px;font-weight:700}
.pcheck.y{background:rgba(16,185,129,.2);color:#10b981} .pcheck.n{background:rgba(148,163,184,.1);color:var(--dim)}
.ddl{display:flex;align-items:center;gap:10px;padding:11px 17px;color:var(--txt);text-decoration:none;font-size:.9em;font-weight:500;transition:background .15s}
.ddl:hover{background:rgba(255,255,255,.05);color:var(--txt)}
.dd-sep{height:1px;background:var(--border);margin:4px 0}
.ddl.out{color:#f43f5e!important} .ddl.out:hover{background:rgba(244,63,94,.08)!important}
/* MAIN */
main{padding:40px 24px 80px;max-width:1020px;margin:0 auto}
.hub-inner{display:flex;flex-direction:column;gap:36px}
.hub-hero h2{font-size:2.4em;font-weight:800;color:#fff;letter-spacing:-.03em;margin-bottom:8px}
.hub-hero p{font-size:1.05em;color:var(--muted);max-width:520px}
.section-title{display:flex;align-items:center;gap:8px;margin-bottom:18px}
.section-title span{font-size:1.4em}
.section-title h3{font-size:1.1em;font-weight:700;color:#f8fafc}
.divider{border:none;border-top:1px solid var(--border)}
/* TOOL CARDS */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.tool-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:14px;text-decoration:none;color:var(--txt);transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer}
.tool-card:hover{background:var(--card2);border-color:rgba(99,102,241,.4);transform:translateY(-4px);box-shadow:0 12px 30px -8px rgba(0,0,0,.5),0 0 0 1px rgba(99,102,241,.3)}
.tool-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.7em;transition:transform .2s}
.tool-card:hover .tool-icon{transform:scale(1.1)}
.tool-card h4{font-weight:700;font-size:1em;color:#f8fafc;margin-bottom:5px;transition:color .2s}
.tool-card:hover h4{color:#818cf8}
.tool-card p{font-size:.83em;color:var(--muted);line-height:1.5}
/* ANIMATION */
main{animation:fadeIn .4s ease-out}
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}