.app{display:flex;flex-direction:column;min-height:100vh}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:#0a0a0ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:.65rem}.brand-logo{width:28px;height:28px;border-radius:6px;box-shadow:var(--img-outline)}.brand-name{font-weight:600;letter-spacing:-.01em}.user-menu{display:flex;align-items:center;padding:.3rem;border-radius:999px;border:1px solid transparent;background:transparent;transition:var(--transition)}.user-menu:hover,.user-menu.open{background:var(--bg-elev);border-color:var(--border)}.user-trigger{display:flex;align-items:center;gap:.6rem;padding:.1rem .4rem .1rem .1rem;background:transparent;border:none;cursor:pointer;color:inherit}.user-avatar{width:32px;height:32px;border-radius:50%;box-shadow:var(--img-outline);transition:var(--transition)}.user-menu.open .user-avatar{box-shadow:0 0 0 2px var(--accent)}.user-name{font-size:.9rem;color:var(--text-dim)}.user-actions{display:flex;align-items:center;max-width:0;opacity:0;overflow:hidden;pointer-events:none;transition:max-width .3s ease,opacity .25s ease,padding .3s ease}.user-menu.open .user-actions{max-width:260px;opacity:1;pointer-events:auto;padding-left:.6rem;margin-left:.3rem;border-left:1px solid var(--border)}.user-actions .logout-btn{display:inline-flex;align-items:center;padding:.4rem .7rem;border-radius:999px;background:transparent;border:none;color:var(--text-dim);font-weight:600;font-size:.85rem;white-space:nowrap;cursor:pointer;transition:var(--transition)}.user-actions .logout-btn:hover{background:#ed42451f;color:#ed4245}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#08080a8c;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);animation:overlay-in .2s ease}.modal-card{width:100%;max-width:380px;padding:1.75rem;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:#18181cd9;box-shadow:0 24px 60px #00000080;text-align:center;animation:modal-in .22s cubic-bezier(.16,1,.3,1)}.modal-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:700;letter-spacing:-.01em;text-wrap:balance}.modal-text{margin:0 0 1.5rem;font-size:.9rem;line-height:1.5;color:var(--text-dim);text-wrap:pretty}.modal-actions{display:flex;gap:.75rem}.modal-btn{flex:1;padding:.7rem 1rem;border-radius:12px;font-weight:600;font-size:.92rem;cursor:pointer;border:1px solid transparent;transition:var(--transition)}.modal-cancel{background:#5865f229;border-color:#5865f266;color:#8a98ff}.modal-cancel:hover{background:#5865f247;transform:translateY(-1px)}.modal-confirm{background:#ed424529;border-color:#ed424573;color:#ff6b6e}.modal-confirm:hover{background:#ed42454d;transform:translateY(-1px)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:2.5rem 1.5rem}.app--detail{height:100dvh;min-height:0}.main.main--flush{max-width:none;margin:0;padding:0;min-height:0;display:flex}.status{color:var(--text-dim);text-align:center;padding:3rem 0}.status.error{display:flex;flex-direction:column;gap:1rem;align-items:center}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;border-radius:10px;font-weight:600;font-size:.9rem;background:var(--accent);color:#fff;transition:var(--transition)}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{background:var(--bg-elev);transform:none}.btn-discord{background:var(--discord);padding:.85rem 1.5rem;font-size:1rem}.btn-discord:hover{background:var(--discord-hover)}.btn:active:not(:disabled),.chip:active,.modal-btn:active,.add-bot:active,.logout-btn:active,.role-chip:active:not(:disabled),.switch:active:not(:disabled){scale:.96}.login{max-width:520px;margin:4rem auto 0;text-align:center}.login-title{font-size:2.25rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem;text-wrap:balance}.login-sub{color:var(--text-dim);margin-bottom:2rem;text-wrap:pretty}.login-note{max-width:360px;margin:1.75rem auto 0;font-size:.78rem;line-height:1.5;color:var(--text-dim);opacity:.75;text-wrap:pretty}.dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.dashboard-title{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;text-wrap:balance}.dashboard-sub{color:var(--text-dim);font-size:.95rem;text-wrap:pretty;font-variant-numeric:tabular-nums}.filters{display:flex;gap:.5rem}.chip{padding:.45rem .9rem;border-radius:999px;background:var(--bg-elev);color:var(--text-dim);border:1px solid var(--border);font-size:.85rem;font-weight:500;transition:var(--transition)}.chip-active{background:var(--accent);color:#fff;border-color:var(--accent)}.guild-section{margin-bottom:2.5rem}.section-head{margin-bottom:1rem}.section-title{font-size:1.05rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.section-count{font-size:.78rem;font-weight:600;color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;padding:.1rem .55rem;font-variant-numeric:tabular-nums}.section-hint{color:var(--text-dim);font-size:.85rem;margin-top:.25rem;text-wrap:pretty}.guild-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;align-items:start}.guild-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:var(--transition)}.guild-card:hover{border-color:#34343c;transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.guild-card.has-bot{border-color:#3ba55d59}.guild-icon{position:absolute;top:1.1rem;left:1.1rem;flex-shrink:0;width:56px;height:56px;border-radius:14px;overflow:hidden;display:grid;place-items:center;background:var(--bg-elev);box-shadow:inset var(--img-outline)}.guild-icon img{width:100%;height:100%;object-fit:cover}.guild-initials{font-weight:700;color:var(--text-dim)}.guild-body{min-width:0;width:100%;min-height:56px;display:flex;align-items:center;justify-content:flex-start}.guild-name{font-size:1.2rem;font-weight:600;text-align:left;width:100%;min-width:0;padding:0 2.75rem 0 5.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guild-footer{margin-top:auto;width:100%;display:flex;flex-direction:column;align-items:center}.add-bot{display:block;width:calc(100% + 2.2rem);margin:0 -1.1rem -1.1rem;padding:.7rem .8rem;border-radius:0 0 var(--radius) var(--radius);text-align:center;font-size:.82rem;font-weight:600;color:#fff;background:var(--discord);transition:var(--transition)}.guild-card.clickable{cursor:pointer;text-decoration:none;color:inherit}.guild-card.clickable:hover{border-color:#3ba55d99}.guild-go{position:absolute;top:1.1rem;right:1.1rem;height:56px;display:grid;place-items:center;color:var(--text-dim);transition:var(--transition)}.guild-card.clickable:hover .guild-go{color:var(--text);transform:translate(3px)}.separator-line{border:0;display:block;width:100%;height:1px;margin:2rem 0;background-color:var(--border)}.add-bot:hover{background:var(--discord-hover)}.detail{width:100%}.detail--center{max-width:1280px;margin:0 auto;padding:2.5rem 1.5rem;overflow-y:auto}.back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-dim);font-size:.9rem;font-weight:500;margin-bottom:1.25rem;transition:var(--transition)}.back-link:hover{color:var(--text)}.back-link svg{transition:var(--transition)}.back-link:hover svg{transform:translate(-2px)}.server-header{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;margin-bottom:1.75rem}.server-identity{display:flex;align-items:center;gap:1rem;min-width:0}.server-avatar{width:60px;height:60px;border-radius:16px;overflow:hidden;flex-shrink:0;background:var(--bg-elev);display:grid;place-items:center;box-shadow:inset var(--img-outline)}.server-avatar img{width:100%;height:100%;object-fit:cover}.server-initials{font-weight:700;font-size:1.35rem;color:var(--text-dim)}.server-headings{min-width:0}.server-name{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;text-wrap:balance;overflow-wrap:anywhere}.server-badges{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;font-weight:600;padding:.22rem .55rem;border-radius:999px;letter-spacing:.01em;white-space:nowrap}.badge-present{background:#3ba55d29;color:var(--manage)}.badge-absent{background:#ed424529;color:#ed8c8e}.badge-manage{background:#4a90e229;color:#7fb3f0}.badge-readonly{background:var(--bg-elev);color:var(--text-dim)}.server-id{color:var(--text-dim);font-size:.78rem;font-variant-numeric:tabular-nums}.server-cta{flex-shrink:0;white-space:nowrap}.notice{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border-radius:var(--radius);margin-bottom:1.25rem;font-size:.9rem;line-height:1.45}.notice-warn{background:#f0b2321a;border:1px solid rgba(240,178,50,.32);color:var(--text)}.notice-icon{display:grid;place-items:center;flex-shrink:0;color:var(--owner)}.notice-text{flex:1;min-width:0;text-wrap:pretty}.notice .btn{flex-shrink:0}.state-screen{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem;padding:4rem 1.5rem}.state-screen.inline{padding:3rem 1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.state-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--bg-elev);color:var(--text-dim);box-shadow:inset var(--img-outline)}.state-icon.error{color:#ed8c8e;background:#ed42451f}.state-title{font-size:1.2rem;font-weight:700;text-wrap:balance}.state-text{color:var(--text-dim);font-size:.92rem;max-width:420px;text-wrap:pretty}.state-screen .btn{margin-top:.5rem}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-primary{background:var(--accent);color:#fff}.btn-sm{padding:.45rem .8rem;font-size:.82rem;gap:.35rem}.server-shell{--content-max: 1200px;flex:1;display:flex;min-width:0;min-height:0}.server-rail{flex-shrink:0;width:264px;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem 1rem;border-right:1px solid var(--border);background:var(--bg);overflow-y:auto}.server-rail .back-link{margin-bottom:0}.rail-identity{display:flex;flex-direction:column;gap:.6rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.rail-avatar{width:48px;height:48px;border-radius:14px}.rail-name{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;line-height:1.2;text-wrap:balance;overflow-wrap:anywhere}.manager-nav{display:flex;flex-direction:column;gap:.15rem}.server-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.server-scroll{flex:1;min-height:0;overflow-y:auto;padding:1.75rem 2rem}.server-content{width:100%;max-width:var(--content-max);margin:0 auto}.nav-item{position:relative;display:flex;align-items:center;gap:.65rem;width:100%;padding:.6rem .75rem;border-radius:10px;background:transparent;color:var(--text-dim);font-size:.9rem;font-weight:500;text-align:left;transition:var(--transition)}.nav-item svg{flex-shrink:0}.nav-item:hover{background:var(--bg-elev);color:var(--text)}.nav-item.active{background:var(--bg-elev);color:var(--text);font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}.nav-item:active:not(.active),.overview-configure:active{scale:.96}.nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-dirty{width:7px;height:7px;border-radius:50%;background:var(--owner);flex-shrink:0}.manager-fields{border:none;padding:0;margin:0;min-width:0;transition:opacity .2s ease}.manager-fields:disabled{opacity:.6}.module-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.25rem 1.5rem 1.5rem}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;margin-bottom:.25rem;border-bottom:1px solid var(--border)}.panel-head-text{min-width:0}.panel-heading{font-size:1.15rem;font-weight:700;letter-spacing:-.01em;text-wrap:balance}.panel-blurb{color:var(--text-dim);font-size:.86rem;margin-top:.2rem;text-wrap:pretty}.field-list{display:flex;flex-direction:column}.status-badge{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0;font-size:.74rem;font-weight:600;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);white-space:nowrap}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.status-badge.on{color:var(--manage);border-color:color-mix(in srgb,var(--manage) 45%,transparent);background:#3ba55d1a}.status-badge.off{color:var(--text-dim)}.status-badge.neutral{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-top:1px solid var(--border)}.setting-row:first-of-type{border-top:none;padding-top:0}.setting-label label,.setting-label .group-label{display:inline-block;font-weight:600;font-size:.95rem}.setting-hint{color:var(--text-dim);font-size:.82rem;margin-top:.15rem;text-wrap:pretty}.switch{position:relative;width:44px;height:26px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border);flex-shrink:0;transition:var(--transition)}.switch:after{content:"";position:absolute;top:-7px;right:-2px;bottom:-7px;left:-2px}.switch-on{background:var(--manage);border-color:var(--manage)}.switch-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s cubic-bezier(.4,0,.2,1)}.switch-on .switch-thumb{transform:translate(18px)}.switch:disabled{cursor:not-allowed}.text-input,.channel-select{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.5rem .7rem;font-size:.9rem;transition:var(--transition)}.text-input:focus,.channel-select:focus{border-color:var(--accent);outline:none}.channel-select{min-width:220px}.text-input.has-error,.channel-select.has-error{border-color:var(--discord);border-color:#ed4245}.field-error{color:#ed8c8e;font-size:.78rem;margin-top:.3rem}.save-bar{flex-shrink:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 2rem;border-top:1px solid var(--border);background:#141417eb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:var(--transition)}.save-bar.is-dirty{border-top-color:color-mix(in srgb,var(--owner) 55%,var(--border));background:color-mix(in srgb,var(--owner) 7%,rgba(20,20,23,.92))}.save-bar-inner{width:100%;max-width:var(--content-max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.save-bar-status{display:flex;align-items:center;gap:.6rem;min-width:0;flex-wrap:wrap}.save-bar-actions{display:flex;align-items:center;gap:.6rem}.save-bar .btn:disabled{opacity:.45;cursor:not-allowed;transform:none;filter:none}.save-status{font-size:.86rem}.save-status.success{color:var(--manage)}.save-status.error{color:#ed8c8e}.save-status.idle{color:var(--text-dim)}.overview-stack{display:flex;flex-direction:column;gap:1.25rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;margin:0}.stat{display:flex;flex-direction:column;gap:.15rem;padding:.85rem 1rem;border-radius:10px;background:var(--bg-elev);box-shadow:inset 0 0 0 1px var(--border)}.stat-label{font-size:.78rem;font-weight:500;color:var(--text-dim)}.stat-value{font-size:1.4rem;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.overview-list{list-style:none}.overview-row{display:flex;align-items:center;gap:.9rem;padding:1rem 0;border-top:1px solid var(--border)}.overview-row:first-child{border-top:none;padding-top:.5rem}.overview-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;flex-shrink:0;background:var(--bg-elev);color:var(--text-dim);box-shadow:inset var(--img-outline);transition:var(--transition)}.overview-icon.on{color:var(--manage);background:#3ba55d1f}.overview-text{flex:1;min-width:0}.overview-name-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.overview-name{font-weight:600;font-size:.95rem}.overview-blurb{color:var(--text-dim);font-size:.84rem;margin-top:.15rem;text-wrap:pretty}.overview-actions{display:flex;align-items:center;gap:.85rem;flex-shrink:0}.overview-configure{display:inline-flex;align-items:center;gap:.25rem;padding:.4rem .7rem;border-radius:8px;background:transparent;border:1px solid var(--border);color:var(--text);font-size:.82rem;font-weight:600;white-space:nowrap;transition:var(--transition)}.overview-configure:hover{background:var(--bg-elev);border-color:#34343c}.overview-configure svg{transition:var(--transition)}.overview-configure:hover svg{transform:translate(2px)}.setting-row.column{flex-direction:column;align-items:stretch}.text-area{width:100%;resize:vertical;font-family:inherit}.text-field-wrap{display:flex;flex-direction:column}.role-multiselect{margin-top:.5rem}.role-chips{display:flex;flex-wrap:wrap;gap:.4rem}.role-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text);font-size:.82rem;transition:var(--transition)}.role-chip:hover:not(:disabled){border-color:var(--accent)}.role-chip-on{border-color:var(--manage);background:color-mix(in srgb,var(--manage) 18%,var(--bg-elev))}.role-chip:disabled{cursor:not-allowed;opacity:.6}.role-swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.role-multiselect.has-error .role-chips{outline:1px solid #ed4245;outline-offset:4px;border-radius:8px}.command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1.25rem;margin-top:.5rem}.command-grid .setting-row{border-top:1px solid var(--border)}.unsaved-pill{font-size:.76rem;font-weight:600;color:var(--owner);padding:.18rem .55rem;border:1px solid color-mix(in srgb,var(--owner) 50%,transparent);border-radius:999px;white-space:nowrap}@media (min-width: 1080px){.field-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.75rem;row-gap:.4rem;align-items:start}.field-list>.setting-row{border-top:none;padding:.85rem 0}.field-list>.setting-row.column{grid-column:1 / -1;border-top:1px solid var(--border);padding-top:1.1rem;margin-top:.35rem}.overview-row{padding:1.1rem 0}}@media (max-width: 820px){.app--detail{height:auto;min-height:100dvh}.server-shell{flex-direction:column}.server-rail{width:100%;overflow:visible;border-right:none;border-bottom:1px solid var(--border);gap:1rem}.manager-nav{flex-direction:row;overflow-x:auto;gap:.4rem;padding-bottom:.25rem;scrollbar-width:none}.manager-nav::-webkit-scrollbar{display:none}.nav-item{width:auto;flex-shrink:0}.nav-item.active{box-shadow:inset 0 -2px 0 var(--accent)}.server-main,.server-scroll{overflow:visible;min-height:0}.server-scroll{padding:1.25rem 1.25rem 1.5rem}.save-bar{position:sticky;bottom:0}}@media (max-width: 600px){.main{padding:1.5rem 1rem}.user-name{display:none}.setting-row{flex-direction:column;align-items:flex-start}.channel-select{min-width:0;width:100%}.server-cta{width:100%;justify-content:center}.module-panel{padding:1.1rem 1.1rem 1.25rem}.overview-row{flex-wrap:wrap}.overview-actions{width:100%;justify-content:space-between;padding-left:calc(40px + .9rem)}.save-bar-inner{flex-direction:column;align-items:stretch}.save-bar-actions{width:100%}.save-bar-actions .btn{flex:1}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0a;--bg-elev: #141417;--bg-card: #16161a;--border: #26262c;--text: #f2f2f3;--text-dim: #9a9aa3;--accent: #4a90e2;--discord: #5865f2;--discord-hover: #4752c4;--owner: #f0b232;--manage: #3ba55d;--radius: 12px;--ease: cubic-bezier(.4, 0, .2, 1);--transition: background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease), opacity .2s var(--ease), filter .2s var(--ease), scale .12s var(--ease);--shadow-card: 0 1px 2px rgba(0, 0, 0, .24), 0 2px 8px rgba(0, 0, 0, .14);--shadow-card-hover: 0 2px 4px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .28);--img-outline: 0 0 0 1px rgba(255, 255, 255, .1)}html{-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
