:root{--bg: #f5f6f8;--card: #ffffff;--text: #1a1f29;--muted: #5b6472;--accent: #c8102e;--border: #e3e6eb;--sidebar-w: 264px;--hub-radius: 170px}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.layout{display:flex;min-height:100vh}.sidebar{display:flex;flex-direction:column;width:var(--sidebar-w);flex-shrink:0;background:var(--card);border-right:1px solid var(--border);padding:1.25rem .9rem}.sidebar__brand{font-size:1.15rem;font-weight:700;letter-spacing:.02em;padding:0 .6rem 1rem;border-bottom:2px solid var(--accent);margin-bottom:1.25rem}.sidebar__heading{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 .6rem .5rem}.sidebar__footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.9rem .6rem 0;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem}.sidebar__footer button{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:6px;padding:.35rem .7rem;cursor:pointer}.sidebar__footer button:hover{border-color:var(--accent);color:var(--accent)}.sidebar__admin-link{margin:.5rem .6rem 0;padding:.4rem 0;font-size:.85rem;color:var(--muted);text-decoration:none;border-top:1px dashed var(--border)}.sidebar__admin-link:hover{color:var(--accent)}.admin{max-width:720px;margin:0 auto;padding:2rem 1.5rem}.admin form{display:flex;gap:.5rem;margin:1rem 0 1.5rem}.admin form input[type=search]{flex:1;padding:.5rem .7rem;border:1px solid var(--border);border-radius:6px}.admin form button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;padding:.5rem 1rem;cursor:pointer}.admin__results{list-style:none;margin:0 0 2rem;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.admin__result{display:flex;justify-content:space-between;padding:.6rem .9rem;cursor:pointer;border-bottom:1px solid var(--border)}.admin__result:last-child{border-bottom:none}.admin__result:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.admin__result span{color:var(--muted)}.admin__roles{border-top:2px solid var(--accent);padding-top:1rem}.admin__role{display:flex;align-items:center;gap:.5rem;padding:.35rem 0}.appnav{display:flex;flex-direction:column;gap:2px}.appnav__item{display:flex;align-items:center;gap:.65rem;padding:.55rem .6rem;border-radius:8px;text-decoration:none;color:inherit;transition:background .12s ease,color .12s ease}.appnav__item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent)}.appnav__icon{flex-shrink:0;color:var(--muted)}.appnav__item:hover .appnav__icon{color:var(--accent)}.appnav__name{font-size:.95rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appnav__empty{color:var(--muted);font-size:.88rem;padding:.4rem .6rem}.stage{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.hub__ring{position:relative;width:calc(var(--hub-radius) * 2 + 96px);height:calc(var(--hub-radius) * 2 + 96px)}.hub__center{position:absolute;inset:50% auto auto 50%;translate:-50% -50%;width:190px;height:190px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:50%;box-shadow:0 10px 40px #00000014}.hub__center img{max-width:72%;max-height:72%;object-fit:contain}.hub__wordmark{font-size:1.6rem;font-weight:800;letter-spacing:.14em;color:var(--accent)}.hub__tu{position:absolute;inset:50% auto auto 50%;margin:-44px 0 0 -44px;width:88px;height:88px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:50%;box-shadow:0 4px 16px #00000012;transition:transform .15s ease,box-shadow .15s ease}.hub__tu:hover{box-shadow:0 8px 24px #0000001f}.hub__tu img{max-width:68%;max-height:68%;object-fit:contain}.hub__initials{font-weight:700;font-size:1.15rem;color:var(--muted)}.admin__error{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:6px;padding:.5rem .8rem}
