:root{--cyan: #00b4d8;--cyan-glow: rgba(0, 180, 216, .3);--purple: #9b59b6;--purple-glow: rgba(155, 89, 182, .3);--gold: #ffd700;--green: #2ecc71;--red: #e74c3c;--blue: #3498db;--bg: #0a0b0f;--bg-card: #12141a;--bg-card-hover: #181b24;--bg-surface: #1a1d27;--text: #e4e5e7;--text-dim: #8b8d94;--text-bright: #ffffff;--border: rgba(255, 255, 255, .06);--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius: 12px;--radius-sm: 8px;--sidebar-width: 260px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.9em;color:var(--cyan)}.portal-loading,.portal-error{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-dim);font-size:1.1rem}.portal-error{color:var(--red)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:48px;text-align:center;max-width:440px;width:100%}.login-logo{width:80px;height:80px;border-radius:50%;margin-bottom:24px}.login-card h1{font-size:1.8rem;font-weight:700;color:var(--text-bright);margin-bottom:12px}.login-card p{color:var(--text-dim);margin-bottom:32px;line-height:1.5}.login-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;background:#5865f2;color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.login-btn:hover{background:#4752c4}.login-btn:active{transform:scale(.98)}.login-btn.secondary{background:var(--bg-surface);border:1px solid var(--border)}.login-btn.secondary:hover{background:var(--bg-card-hover)}.guild-picker{max-width:520px}.guild-list{display:flex;flex-direction:column;gap:12px}.guild-item{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:1rem;cursor:pointer;transition:background .2s,border-color .2s;width:100%;text-align:left}.guild-item:hover{background:var(--bg-card-hover);border-color:var(--cyan)}.guild-icon{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.guild-name{font-weight:600;color:var(--text-bright);flex:1}.guild-rsn{color:var(--text-dim);font-size:.9rem}.tier-owner{color:var(--gold)}.tier-leadership{color:var(--purple)}.tier-officer{color:var(--cyan)}.tier-member{color:var(--text-dim)}.guild-tier,.sidebar-tier{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:4px;background:#ffffff0d}.portal-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:10}.sidebar-header{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.sidebar-logos{display:flex;align-items:center;gap:6px;flex-shrink:0}.sidebar-guild-icon{width:36px;height:36px;border-radius:50%;border:2px solid var(--accent);object-fit:cover}.sidebar-logo{width:40px;height:40px;border-radius:50%;flex-shrink:0}.sidebar-clan{display:flex;flex-direction:column;overflow:hidden}.sidebar-clan-name{font-weight:700;font-size:.95rem;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-rsn{font-size:.8rem;color:var(--text-dim)}.sidebar-nav{flex:1;padding:12px 0}.nav-item{display:block;padding:10px 20px;color:var(--text-dim);font-size:.9rem;font-weight:500;transition:color .15s,background .15s;border:none;background:none;width:100%;text-align:left;cursor:pointer;font-family:var(--font)}.nav-item:hover{color:var(--text-bright);background:#ffffff08}.nav-item.active{color:var(--cyan);background:#00b4d814}.nav-hidden-badge{margin-left:auto;font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:#ef4444;opacity:.7;font-weight:600}.sidebar-footer{border-top:1px solid var(--border);padding:12px 0}.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 20px}.sidebar-avatar{width:28px;height:28px;border-radius:50%}.sidebar-username{font-size:.85rem;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{color:var(--red)!important}.config-banner{display:flex;align-items:center;gap:12px;background:#dc262626;border:1px solid rgba(220,38,38,.4);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:20px;font-size:.85rem;color:#fca5a5}.config-banner-content{flex:1;line-height:1.5}.config-banner-content strong{color:#fecaca}.config-banner-link{color:var(--cyan)!important;text-decoration:underline}.config-banner-dismiss{background:none;border:none;color:#fca5a5;font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1;opacity:.7}.config-banner-dismiss:hover{opacity:1}.portal-main{flex:1;margin-left:var(--sidebar-width);padding:28px 36px;min-height:100vh;max-width:1400px}.dash-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:20px}.dashboard h1{font-size:1.5rem;font-weight:700;color:var(--text-bright);margin-bottom:0}.dash-sync-info{display:flex;gap:16px;flex-wrap:wrap}.dash-sync-item{font-size:.78rem;color:var(--text-dim);white-space:nowrap}.dash-sync-next{color:var(--cyan)}@media(max-width:600px){.dash-header{flex-direction:column;gap:4px}.dash-sync-info{gap:8px 12px}.dash-sync-item{font-size:.72rem}}.dash-status-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:12px;transition:border-color .2s}.dash-status-section.clickable{cursor:pointer}.dash-status-section.clickable:hover{border-color:#00b4d84d}.dash-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.dash-status-title{font-weight:700;font-size:1rem;color:var(--text-bright)}.dash-status-change{display:flex;gap:6px;font-size:.8rem;align-items:center}.dash-status-bar{height:8px;background:#e74c3c40;border-radius:4px;overflow:hidden;margin-bottom:6px}.dash-status-bar.citadel-bar{display:flex}.dash-status-fill{height:100%;transition:width .6s ease}.dash-status-fill:first-child{border-radius:4px 0 0 4px}.dash-status-fill:last-child{border-radius:0 4px 4px 0}.dash-status-fill:only-child{border-radius:4px}.dash-status-fill.active{background:var(--green);border-radius:4px}.dash-status-fill.capped{background:var(--cyan)}.dash-status-fill.visited{background:var(--gold)}.dash-status-legend{display:flex;justify-content:space-between;font-size:.78rem}.dash-status-legend.citadel-legend{justify-content:flex-start;gap:14px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-bottom:24px}.dash-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;transition:border-color .2s,transform .15s;display:flex;flex-direction:column;gap:6px}.dash-card.clickable{cursor:pointer}.dash-card.clickable:hover{border-color:#00b4d84d;transform:translateY(-1px)}.dash-card-alert{border-color:#ffd70033}.dash-card-alert:hover{border-color:#ffd70066!important}.dash-card-icon{font-size:1.4rem;line-height:1}.dash-card-body{display:flex;flex-direction:column}.dash-card-value{font-size:1.5rem;font-weight:700;line-height:1.2}.dash-card-label{font-size:.8rem;color:var(--text-dim);font-weight:500;text-transform:uppercase;letter-spacing:.03em}.dash-card-sub{display:flex;gap:6px;font-size:.78rem;align-items:center}.text-cyan{color:var(--cyan)}.text-purple{color:var(--purple)}.text-gold{color:var(--gold)}.dash-panels{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.dash-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.dash-panel h3{font-size:.9rem;font-weight:600;color:var(--text-bright);margin-bottom:14px}.dash-leaderboard{display:flex;flex-direction:column;gap:8px}.dash-lb-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--bg-surface)}.dash-lb-rank{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--text-dim);background:#ffffff0d;border-radius:50%;flex-shrink:0}.dash-lb-name{flex:1;font-size:.85rem;color:var(--text);font-weight:500}.dash-lb-value{font-size:.85rem;font-weight:700}.dash-goals{display:flex;flex-direction:column;gap:12px}.dash-goal{padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-surface)}.dash-goal.clickable{cursor:pointer}.dash-goal.clickable:hover{background:var(--bg-card-hover)}.dash-goal-header{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:6px;color:var(--text);font-weight:500}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-header h1{font-size:1.5rem;font-weight:700;color:var(--text-bright)}.page-header-actions{display:flex;gap:8px;align-items:center}.btn-export{padding:8px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.btn-export:hover{background:var(--bg-card-hover);border-color:var(--cyan)}.btn-push{padding:3px 10px;background:#22c55e26;border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-sm);color:#4ade80;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.btn-push:hover:not(:disabled){background:#22c55e40;border-color:#4ade80}.btn-push:disabled{opacity:.5;cursor:default}.btn-push.pushed{background:#22c55e14;color:#6b7280;border-color:#6b72804d}.filters-bar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filters-row{display:flex;gap:12px;flex:1;min-width:0}.filters-row .filter-select{flex:1;min-width:0}.filter-input,.filter-select{padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-family:var(--font);outline:none;transition:border-color .2s}.filter-input:focus,.filter-select:focus{border-color:var(--cyan)}.filter-input{flex:1;min-width:180px}.filter-select{min-width:140px}.filter-select option{background:var(--bg-card);color:var(--text)}.filter-date{padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-family:var(--font);outline:none;transition:border-color .2s;color-scheme:dark}.filter-date:focus{border-color:var(--cyan)}.data-table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table thead{background:var(--bg-surface)}.data-table th{padding:12px 16px;text-align:left;font-weight:600;color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--border)}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{color:var(--text-bright)}.sort-arrow{color:var(--cyan)}.data-table td{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#ffffff05}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:#00b4d80f}.table-empty{text-align:center;padding:40px 16px!important;color:var(--text-dim)}.mobile-only{display:none!important}.mobile-card-list{flex-direction:column;gap:12px}.mobile-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px;transition:background .2s,border-color .2s}.mobile-card.clickable{cursor:pointer}.mobile-card.clickable:hover{background:var(--bg-card-hover);border-color:var(--cyan)}.mobile-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.mobile-card-rsn{font-weight:600;color:var(--text-bright);font-size:.95rem}.mobile-card-details{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-dim)}.mobile-card-sep{color:var(--border);font-size:.7rem}.mobile-card-rank{color:var(--cyan)}.mobile-card-xp{color:var(--gold, #f0c040)}.mobile-card-field{display:flex;justify-content:space-between;padding:2px 0;font-size:.85rem}.mobile-card-field.primary{font-weight:600;color:var(--text-bright);font-size:.95rem;margin-bottom:4px}.mobile-card-label{color:var(--text-dim)}.mobile-card-value{color:var(--text)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:16px 0}.pagination-info{color:var(--text-dim);font-size:.85rem}.pagination-controls{display:flex;align-items:center;gap:12px}.pagination-controls button{padding:6px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;cursor:pointer;transition:background .2s}.pagination-controls button:hover:not(:disabled){background:var(--bg-card-hover)}.pagination-controls button:disabled{opacity:.4;cursor:not-allowed}.pagination-current{color:var(--text-dim);font-size:.85rem}.back-btn{display:inline-block;padding:6px 12px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);font-size:.85rem;cursor:pointer;margin-bottom:24px;font-family:var(--font);transition:color .2s,border-color .2s}.back-btn:hover{color:var(--text-bright);border-color:var(--cyan)}.member-header{margin-bottom:24px}.member-info-card h1{font-size:1.5rem;font-weight:700;color:var(--text-bright);margin-bottom:6px}.member-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.member-rank{font-size:.85rem;font-weight:600;color:var(--cyan);padding:2px 10px;background:#00b4d81a;border-radius:4px}.member-status{font-size:.8rem;font-weight:600;padding:2px 10px;border-radius:4px}.status-active{color:var(--green);background:#00c8531a}.status-inactive{color:var(--red);background:#ff52521a}.member-linked{font-size:.8rem;font-weight:600;color:var(--purple);padding:2px 10px;background:#bb86fc1a;border-radius:4px}.member-stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:24px}.member-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.member-stat-label{display:block;font-size:.8rem;color:var(--text-dim);font-weight:500;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.member-stat-value{font-size:1.05rem;font-weight:700;color:var(--text-bright)}.join-date-edit{display:flex;align-items:center;gap:8px}.join-date-edit input[type=date]{padding:4px 8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;font-family:var(--font)}.join-date-edit button,.edit-btn{padding:4px 10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.8rem;cursor:pointer;font-family:var(--font);transition:background .2s}.join-date-edit button:hover,.edit-btn:hover{background:var(--bg-card-hover)}.edit-btn{margin-left:8px}.member-section{margin-bottom:24px}.member-section h2{font-size:1rem;font-weight:700;color:var(--text-bright);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.notes-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.notes-section .section-header h2{margin-bottom:0;border-bottom:none;padding-bottom:0}.note-form{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:16px}.note-form-row{margin-bottom:10px}.note-type-select{width:100%}.note-textarea{width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:.9rem;padding:10px 12px;resize:vertical;min-height:70px;box-sizing:border-box}.note-textarea:focus{outline:none;border-color:var(--cyan)}.note-form-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.notes-list{display:flex;flex-direction:column;gap:10px}.note-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;border-left:3px solid var(--border)}.note-type-praise{border-left-color:var(--gold)}.note-type-warning{border-left-color:#e67e22}.note-type-issue{border-left-color:var(--red)}.note-type-update{border-left-color:var(--cyan)}.note-type-note{border-left-color:var(--text-dim)}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.note-type-badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-bright)}.note-date{font-size:.75rem;color:var(--text-dim)}.note-content{font-size:.9rem;color:var(--text);line-height:1.5;white-space:pre-wrap;word-break:break-word}.note-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.note-author{font-size:.75rem}.note-delete-btn{background:none;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:0 4px;line-height:1;transition:color .2s}.note-delete-btn:hover{color:var(--red)}.xp-summary{display:flex;gap:20px;font-size:.85rem;color:var(--text-dim);margin-bottom:8px;flex-wrap:wrap}.xp-chart-simple{display:flex;align-items:flex-end;gap:2px;height:120px;padding:8px 0;overflow:hidden;position:relative}.xp-bar{flex:1;background:var(--cyan);border-radius:2px 2px 0 0;min-width:4px;max-height:100%;opacity:.8;transition:opacity .15s}.xp-bar:hover{opacity:1}.xp-chart-labels{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-dim);margin-top:4px}.monthly-xp-chart{display:flex;align-items:flex-end;gap:8px;height:160px;padding:8px 0}.monthly-xp-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;min-width:0}.monthly-xp-bar{width:100%;max-width:40px;background:var(--cyan);border-radius:3px 3px 0 0;opacity:.8;transition:opacity .15s}.monthly-xp-bar:hover{opacity:1}.monthly-xp-label{font-size:.7rem;color:var(--text-dim);margin-top:6px;white-space:nowrap}.monthly-xp-value{font-size:.7rem;color:var(--text);white-space:nowrap}@media(max-width:600px){.monthly-xp-chart{gap:4px}.monthly-xp-value{display:none}}.timeline{display:flex;flex-direction:column;gap:8px}.timeline-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-surface);border-radius:var(--radius-sm);font-size:.85rem}.timeline-date{color:var(--text-dim);font-size:.8rem;white-space:nowrap;min-width:80px}.timeline-text{color:var(--text);flex:1}.timeline-type{font-size:.75rem;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:4px;background:#ffffff0d;white-space:nowrap}.type-xp{color:var(--cyan)}.type-rank{color:var(--gold)}.type-citadel{color:var(--green)}.type-join{color:var(--purple)}.timeline-points{font-weight:700;white-space:nowrap;min-width:50px}.timeline-points.positive{color:var(--green)}.timeline-points.negative{color:var(--red)}.citadel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.citadel-week{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);text-align:center;font-size:.85rem}.citadel-week.capped{background:#00c85314;border-color:#00c8534d}.citadel-week.visited{background:#00b4d814;border-color:#00b4d84d}.citadel-week-date{display:block;font-size:.8rem;color:var(--text-dim)}.citadel-week-type{display:block;font-weight:600;text-transform:capitalize;margin-top:2px}.citadel-week.capped .citadel-week-type{color:var(--green)}.citadel-week.visited .citadel-week-type{color:var(--cyan)}.citadel-status{font-size:.8rem;font-weight:600;padding:2px 8px;border-radius:4px}.citadel-capped{color:var(--green);background:#00c8531a}.citadel-visited{color:var(--cyan);background:#00b4d81a}.last-active-cell{display:flex;align-items:center;gap:6px}.inactive-badge{font-size:.65rem;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.badge-1mo{color:var(--gold);background:#ffd7001f}.badge-3mo{color:#e67e22;background:#e67e221f}.badge-6mo{color:var(--red);background:#e74c3c1f}.badge-12mo{color:#c0392b;background:#c0392b26}.private-badge{font-size:.65rem;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;color:#9b59b6;background:#9b59b61f;cursor:help}.citadel-badge{font-size:.75rem;line-height:1}.mobile-card-badges{display:flex;align-items:center;gap:6px}.btn-primary{padding:8px 16px;background:var(--cyan);color:var(--bg);border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;font-family:var(--font);transition:opacity .2s}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:8px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;font-weight:500;cursor:pointer;font-family:var(--font);transition:background .2s}.btn-secondary:hover{background:var(--bg-card-hover)}.btn-sm{padding:4px 10px;font-size:.8rem}.btn-danger-sm{padding:4px 10px;background:none;border:1px solid var(--red);border-radius:var(--radius-sm);color:var(--red);font-size:.8rem;cursor:pointer;font-family:var(--font);transition:background .2s}.btn-danger-sm:hover{background:#ff52521a}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-dim{color:var(--text-dim)}.tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:0}.tab{padding:10px 20px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-size:.9rem;font-weight:500;cursor:pointer;font-family:var(--font);transition:color .2s,border-color .2s;margin-bottom:-1px}.tab:hover{color:var(--text-bright)}.tab.active{color:var(--cyan);border-bottom-color:var(--cyan)}.points-form,.goal-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:24px}.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.form-field{display:flex;flex-direction:column;gap:4px;min-width:120px}.form-field label{font-size:.8rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.form-field input,.form-field select{padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-family:var(--font);outline:none}.form-field input:focus,.form-field select:focus{border-color:var(--cyan)}.form-field-wide{flex:1;min-width:200px}.form-field-btn{justify-content:flex-end}.form-hint{font-size:.75rem;color:var(--cyan);margin-top:2px}.form-error{color:var(--red);font-size:.85rem;margin-top:8px}.form-success{color:var(--green);font-size:.85rem;margin-top:8px}.donor-field{display:flex;flex-direction:column;gap:6px}.donor-custom-input{padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-family:var(--font);outline:none}.donor-custom-input:focus{border-color:var(--cyan)}.autocomplete-wrapper{position:relative}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:20;max-height:200px;overflow-y:auto}.autocomplete-dropdown button{display:block;width:100%;padding:8px 12px;text-align:left;background:none;border:none;color:var(--text);font-size:.9rem;cursor:pointer;font-family:var(--font)}.autocomplete-dropdown button:hover{background:var(--bg-surface)}.goal-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.goal-form .filter-input{flex:1;min-width:150px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.section-header h2{margin-bottom:0;padding-bottom:0;border-bottom:none}.rules-section{margin-top:16px}.rules-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.rule-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-surface);border-radius:var(--radius-sm)}.rule-trigger{font-weight:500;color:var(--text)}.rule-points{font-weight:700}.rules-edit{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.rule-edit-row{display:flex;gap:8px;align-items:center}.rule-edit-row .filter-input{flex:1}.rule-points-input{max-width:100px!important;flex:0!important}.rules-edit-actions{display:flex;gap:8px}.fund-balance{color:var(--gold)!important}.fund-tx-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.fund-tx-form .form-field input,.fund-tx-form .form-field select{width:100%}.fund-tx-form .ef-actions .btn-primary{flex:1;padding:12px 20px;font-size:.95rem}@media(max-width:600px){.fund-tx-form{padding:16px}.fund-tx-form .ef-actions .btn-primary{min-height:48px;font-size:1rem}}.fund-goal-form,.points-add-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.fund-goal-form .form-field input,.fund-goal-form .form-field select,.points-add-form .form-field input,.points-add-form .form-field select{width:100%}.fund-goal-form .ef-actions .btn-primary,.fund-goal-form .ef-actions .btn-secondary,.points-add-form .ef-actions .btn-primary{flex:1;padding:12px 20px;font-size:.95rem}@media(max-width:600px){.fund-goal-form,.points-add-form{padding:16px}.fund-goal-form .ef-actions .btn-primary,.fund-goal-form .ef-actions .btn-secondary,.points-add-form .ef-actions .btn-primary{min-height:48px;font-size:1rem}}.fund-tx-type{font-size:.75rem;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:4px;white-space:nowrap}.fund-tx-type.deposit{color:var(--green);background:#00c8531a}.fund-tx-type.withdrawal{color:var(--red);background:#ff52521a}.fund-tx-donor{color:var(--cyan);font-size:.85rem;white-space:nowrap}.goal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:12px}.goal-completed{opacity:.6}.goal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.goal-name{font-weight:600;color:var(--text-bright);font-size:1rem}.goal-progress-text{color:var(--text-dim);font-size:.85rem}.goal-bar-bg{height:8px;background:var(--bg-surface);border-radius:4px;overflow:hidden;margin-bottom:8px}.goal-bar-fill{height:100%;background:var(--cyan);border-radius:4px;transition:width .3s}.goal-completed .goal-bar-fill{background:var(--green)}.goal-footer{display:flex;justify-content:space-between;align-items:center}.goal-pct{font-size:.85rem;color:var(--text-dim);font-weight:500}.goal-actions{display:flex;gap:8px;align-items:center}.goal-add-inline{display:flex;gap:6px;align-items:center}.goal-add-input{max-width:120px}.completed-goals{margin-top:24px}.completed-goals h3{font-size:.9rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}.report-summary{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.report-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;text-align:center;min-width:80px;transition:border-color .2s}.report-stat.clickable{cursor:pointer}.report-stat.clickable:hover{border-color:#00b4d84d}.report-stat.report-stat-active{border-color:var(--cyan);background:#00b4d80f}.report-stat-value{display:block;font-size:1.4rem;font-weight:700;color:var(--text-bright)}.report-stat-label{display:block;font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.report-yellow{color:var(--gold)!important}.report-orange{color:#e67e22!important}.report-red{color:var(--red)!important}.report-darkred{color:#c0392b!important}.citadel-report{display:flex;flex-direction:column;gap:8px}.citadel-report-week{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.citadel-report-header{padding:12px 16px;cursor:pointer;transition:background .15s}.citadel-report-header:hover{background:#ffffff05}.citadel-report-date{font-weight:600;color:var(--text-bright);font-size:.9rem}.citadel-report-stats{display:flex;gap:16px;margin-top:4px;font-size:.8rem}.citadel-report-bar-bg{height:4px;background:var(--bg-surface);border-radius:2px;margin-top:8px;overflow:hidden}.citadel-report-bar-fill{height:100%;background:var(--cyan);border-radius:2px}.citadel-report-members{padding:12px 16px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px}.citadel-member-tag{font-size:.8rem;padding:2px 8px;border-radius:4px;font-weight:500}.citadel-trend{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px}.citadel-trend-title{font-size:.9rem;font-weight:600;color:var(--text-bright);margin-bottom:16px}.citadel-trend-rows{display:flex;flex-direction:column;gap:10px}.citadel-trend-row{display:flex;align-items:center;gap:10px}.citadel-trend-label{font-size:.75rem;color:var(--text-dim);width:50px;flex-shrink:0;text-align:right;white-space:nowrap}.citadel-trend-bar-track{flex:1;height:20px;background:var(--bg-surface);border-radius:4px;display:flex;overflow:hidden}.citadel-trend-bar{height:100%;transition:width .3s}.citadel-trend-bar.capped{background:var(--green);opacity:.85}.citadel-trend-bar.visited{background:var(--cyan);opacity:.7}.citadel-trend-count{font-size:.75rem;font-weight:600;color:var(--text);width:28px;flex-shrink:0;text-align:right}.citadel-trend-pct{width:42px;flex-shrink:0;text-align:right}.citadel-trend-change{font-size:.65rem;font-weight:600;white-space:nowrap}.citadel-trend-change.up{color:#4ade80}.citadel-trend-change.down{color:#ef4444}.citadel-trend-change.flat{color:#6b7280}.citadel-trend-legend{display:flex;gap:16px;margin-top:14px;font-size:.8rem;color:var(--text)}.citadel-trend-legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.legend-dot.capped{background:var(--green)}.legend-dot.visited{background:var(--cyan)}.install-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--bg-card);border-top:1px solid var(--cyan);padding:14px 20px calc(14px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -4px 20px #0006;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.install-banner-content{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.install-banner-icon{width:40px;height:40px;border-radius:10px;flex-shrink:0}.install-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}.install-banner-text strong{color:var(--text-bright);font-size:.9rem}.install-banner-text span{color:var(--text-dim);font-size:.8rem;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.install-share-icon{width:18px;height:18px;color:var(--cyan);flex-shrink:0;vertical-align:middle}.install-banner-actions{display:flex;gap:8px;flex-shrink:0}.install-btn{background:var(--cyan);color:var(--bg-dark);border:none;padding:8px 18px;border-radius:var(--radius);font-weight:600;font-size:.85rem;cursor:pointer}.install-btn:hover{opacity:.9}.install-dismiss{background:transparent;color:var(--text-dim);border:1px solid var(--border);padding:8px 14px;border-radius:var(--radius);font-size:.8rem;cursor:pointer}.install-dismiss:hover{color:var(--text-bright);border-color:var(--text-dim)}.activity-feed{display:flex;flex-direction:column;gap:2px}.activity-feed-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);border-left:3px solid var(--border)}.activity-feed-item.type-level-up{border-left-color:var(--green)}.activity-feed-item.type-quest{border-left-color:var(--cyan)}.activity-feed-item.type-xp-milestone{border-left-color:var(--gold)}.activity-feed-item.type-promotion{border-left-color:#f59e0b}.activity-feed-item.type-citadel{border-left-color:var(--cyan)}.activity-feed-item.type-points{border-left-color:var(--purple)}.activity-feed-item.type-fund{border-left-color:var(--gold)}.activity-feed-icon{font-size:1.1rem;flex-shrink:0;width:24px;text-align:center}.activity-feed-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.activity-feed-rsn{font-weight:600;color:var(--text-bright);font-size:.9rem}.activity-feed-text{color:var(--text-dim);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-feed-date{color:var(--text-dim);font-size:.8rem;flex-shrink:0;white-space:nowrap}.settings-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px}.settings-section h2{font-size:1rem;font-weight:700;color:var(--text-bright);margin-bottom:12px}.settings-hint{font-size:.8rem;margin-bottom:12px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:12px}.settings-field{display:flex;flex-direction:column;gap:4px}.settings-field label{font-size:.75rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.settings-field input,.settings-field select{padding:7px 10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;font-family:var(--font);outline:none}.settings-field input:focus{border-color:var(--cyan)}.settings-field input:disabled{opacity:.5;cursor:not-allowed}.settings-field-inline{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.settings-field-inline input,.settings-field-inline select{padding:7px 10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;font-family:var(--font);outline:none}.settings-field-inline input:focus{border-color:var(--cyan)}.settings-field-inline input:disabled,.settings-field-inline select:disabled{opacity:.5;cursor:not-allowed}.settings-actions{display:flex;gap:10px;align-items:center}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;text-align:center;padding:24px}.error-boundary h2{font-size:1.5rem;font-weight:700;color:var(--text-bright)}.error-boundary p{color:var(--text-dim);max-width:400px}.portal-hamburger{display:none;flex-direction:column;gap:5px;padding:8px;background:none;border:none;cursor:pointer;position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:12px;z-index:20;flex-shrink:0;min-width:44px;min-height:44px;align-items:center;justify-content:center}.portal-hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .25s ease,opacity .25s ease}.portal-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.portal-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.portal-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000;z-index:9;transition:background .28s ease}.sidebar-overlay{background:#0009}@media(max-width:768px){.portal-hamburger{display:flex}.sidebar-overlay{display:block}.sidebar{transform:translate(-100%);transition:transform .28s ease}.sidebar.open{transform:translate(0)}.sidebar-header{padding-top:calc(50px + env(safe-area-inset-top,0px))}.portal-main{margin-left:0;padding:20px 16px;padding-top:calc(56px + env(safe-area-inset-top,0px))}.dashboard h1{font-size:1.25rem;margin-bottom:14px}.dash-status-section{padding:12px 14px;margin-bottom:10px}.dash-status-title{font-size:.9rem}.dash-grid{grid-template-columns:repeat(2,1fr);gap:10px}.dash-card{padding:10px 12px;gap:4px}.dash-card-icon{display:none}.dash-card-value{font-size:1.15rem}.dash-card-label,.dash-card-sub{font-size:.7rem}.dash-panels{grid-template-columns:1fr}.member-stats-row{grid-template-columns:repeat(2,1fr)}.member-stats-row .member-stat:first-child{grid-column:1 / -1}.member-stats-row .member-stat{padding:10px 14px}.settings-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:8px}.page-header h1{font-size:1.2rem}.page-header .btn-primary,.page-header .btn-secondary{width:100%;text-align:center}.page-header.page-header-inline{flex-direction:row;align-items:center}.filters-bar{flex-direction:column;gap:8px}.filter-input{min-width:0;width:100%}.filter-date{width:100%}.filters-row{gap:8px}.filters-row .filter-select{font-size:.8rem;padding:8px}.form-row{flex-direction:column}.form-field,.form-field-wide{min-width:0!important}.settings-field-inline{flex-direction:row;flex-wrap:wrap;align-items:flex-end}.settings-field-inline .form-field{flex:1;min-width:120px}.settings-field-inline .btn-primary{width:100%;margin-top:4px}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:2px}.tab{white-space:nowrap;flex-shrink:0;padding:12px 16px;font-size:.85rem;min-height:44px}.desktop-only{display:none!important}.mobile-only{display:block!important}.mobile-card-list.mobile-only,.mon-mobile-list.mobile-only{display:flex!important}.report-summary{flex-wrap:wrap;gap:6px}.report-stat{flex:1;min-width:0;padding:6px 4px}.report-stat-value{font-size:1rem}.report-stat-label{font-size:.6rem}.points-form,.goal-form{padding:14px}.section-header{flex-direction:column;align-items:flex-start;gap:8px}.section-header .btn-secondary{width:100%;text-align:center}.goal-form{flex-direction:column}.goal-form .filter-input{width:100%}.goal-actions{flex-wrap:wrap}.goal-actions .btn-secondary,.goal-actions .btn-primary,.goal-actions .btn-danger-sm{flex:1;min-width:60px;text-align:center}.rule-edit-row{flex-direction:column}.rule-points-input{max-width:none!important}.rules-edit-actions{flex-wrap:wrap}.rules-edit-actions button{flex:1;min-width:80px;text-align:center}.timeline-item{flex-wrap:wrap;gap:6px}.timeline-date{width:100%;min-width:0}.activity-feed-item{padding:8px 10px;gap:8px}.activity-feed-text{white-space:normal}.activity-feed-icon{font-size:1rem}.mobile-card .mobile-card-details{flex-wrap:wrap;gap:4px 8px}.mobile-card .mobile-card-text{flex:1 1 100%;white-space:normal;line-height:1.3}.mobile-card .mobile-card-date{font-size:.75rem}.mobile-card .btn-push{font-size:.7rem;padding:2px 8px;margin-left:auto}.mobile-card .mobile-card-rsn{font-size:.85rem}.mobile-card .timeline-type{font-size:.65rem;padding:1px 6px}}@media(max-width:400px){.login-card{padding:32px 24px}.dash-grid,.member-stats-row{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:400px;overflow:hidden}.modal.modal-wide{max-width:560px}.bulk-member-list{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius)}.bulk-member-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);gap:12px}.bulk-member-row:last-child{border-bottom:none}.bulk-member-rsn{font-weight:600;color:var(--text-bright);min-width:120px;flex-shrink:0}.bulk-member-row .modal-input{margin:0;padding:6px 10px;flex:1;max-width:180px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:1rem;font-weight:700;color:var(--text-bright)}.modal-close{background:none;border:none;color:var(--text-dim);font-size:1.4rem;cursor:pointer;padding:0 4px;line-height:1}.modal-close:hover{color:var(--text-bright)}.modal-body{padding:20px}.modal-input{width:100%;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;color:var(--text-bright);font-family:var(--font);font-size:.9rem}.modal-input:focus{outline:none;border-color:var(--cyan)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px}.impersonate-sidebar{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;font-size:.8rem;color:var(--text-dim)}.impersonate-sidebar.active{background:#ed87211a;border-color:var(--gold)}.impersonate-viewing{color:var(--gold);font-size:.8rem}.impersonate-viewing strong{color:var(--text-bright)}.impersonate-label{font-weight:600;color:var(--text-dim);white-space:nowrap}.impersonate-select{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 10px;font-size:.8rem;width:100%}.impersonate-select:focus{outline:none;border-color:var(--cyan)}.impersonate-select:disabled{opacity:.4}.btn-impersonate-go,.btn-impersonate-stop{padding:5px 12px;border-radius:6px;border:none;font-size:.8rem;font-weight:600;cursor:pointer}.btn-impersonate-go{background:var(--cyan);color:var(--bg);width:100%}.btn-impersonate-go:disabled{opacity:.4;cursor:not-allowed}.btn-impersonate-stop{background:var(--red);color:#fff;width:100%}.monitoring-page{max-width:1200px}.monitoring-refresh{font-size:.8rem;white-space:nowrap}.stat-strip{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.stat-item{display:flex;align-items:center;gap:8px;padding:8px 14px;border-right:1px solid var(--border);font-size:.85rem}.stat-item:last-child{border-right:none}.stat-label{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-weight:600}.text-warn{color:#f59e0b}.monitoring-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.monitoring-half{min-width:0}.usage-bar-container{margin-bottom:10px}.usage-bar-header{display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:3px}.usage-bar-label{color:var(--text)}.usage-bar-value{color:var(--text-dim)}.usage-bar-track{background:var(--bg);border-radius:4px;height:10px;overflow:hidden}.usage-bar-fill{height:100%;border-radius:4px;transition:width .5s ease}.usage-bar-pct{font-size:.7rem;color:var(--text-dim)}.monitoring-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.monitoring-table{width:100%;border-collapse:collapse;font-size:.82rem}.monitoring-table th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text-dim);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.monitoring-table td{padding:8px 12px;border-bottom:1px solid var(--bg-surface);white-space:nowrap}.monitoring-table tbody tr:hover{background:var(--bg-surface)}.threat-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600}.threat-high{background:#dc262633;color:#fca5a5}.threat-medium{background:#f59e0b33;color:#fcd34d}.threat-low{background:#22c55e33;color:#86efac}.method-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:.72rem;background:var(--bg-surface);color:var(--text-dim)}.method-password{background:#dc262626;color:#fca5a5}.method-invalid-user{background:#f59e0b26;color:#fcd34d}.method-closed{background:#64748b33;color:var(--text-dim)}.suspicious-table{max-width:500px}.service-health-row{display:flex;gap:10px;flex-wrap:wrap}.service-pill{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:.82rem;font-weight:500;border:1px solid var(--border)}.service-dot{width:8px;height:8px;border-radius:50%}.service-healthy{background:#22c55e14}.service-healthy .service-dot{background:#22c55e}.service-down{background:#dc262614}.service-down .service-dot{background:var(--red)}.monitoring-duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:0}.monitoring-duo-card{min-width:0}@media(max-width:900px){.monitoring-duo{grid-template-columns:1fr}}.viewer-ip-banner{background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:6px;padding:.5rem 1rem;font-size:.85rem;color:var(--text-dim);margin-bottom:1rem}.you-badge{background:#8b5cf640;color:#a78bfa;font-size:.65rem;font-weight:600;text-transform:uppercase;padding:1px 5px;border-radius:3px;margin-left:.3rem;letter-spacing:.03em}.row-viewer{background:#8b5cf614!important}.geo-label{color:var(--text-dim);font-size:.75rem;margin-left:.4rem;white-space:nowrap}.request-cell{max-width:350px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:JetBrains Mono,Fira Code,monospace;font-size:.78rem}.collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none}.collapsible-header:hover h2{color:var(--cyan)}.collapse-arrow{display:inline-block;font-size:.7rem;margin-right:8px;transition:transform .2s ease}.collapse-arrow.open{transform:rotate(90deg)}.section-header-inline{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.section-header-inline h2{margin:0}.section-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mon-btn-export{background:#8b5cf626;color:#a78bfa;border:1px solid rgba(139,92,246,.3);border-radius:4px;padding:3px 10px;font-size:.72rem;cursor:pointer;white-space:nowrap}.mon-btn-export:hover{background:#8b5cf640}.monitoring-total{margin-left:4px}.row-recent{background:#dc262614}.row-flash{background:#dc26262e;animation:flash-row 1s ease-in-out infinite alternate}@keyframes flash-row{0%{background:#dc26262e}to{background:#dc262614}}.monitoring-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px;font-size:.82rem}.monitoring-pagination button{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:.82rem}.monitoring-pagination button:hover:not(:disabled){background:var(--border)}.monitoring-pagination button:disabled{opacity:.4;cursor:default}.bot-log-container{background:#0a0a0f;border:1px solid var(--border);border-radius:8px;overflow:hidden}.bot-log-output{margin:0;padding:12px 16px;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:.78rem;line-height:1.6;max-height:500px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;color:var(--text-dim)}.bot-log-line{padding:1px 0}.bot-log-line.log-error{color:var(--red)}.bot-log-line.log-warn{color:#f59e0b}@media(max-width:768px){.stat-strip{display:grid;grid-template-columns:1fr 1fr}.stat-item{border-right:none;border-bottom:1px solid var(--border);padding:6px 10px;font-size:.8rem}.stat-item:nth-last-child(-n+2){border-bottom:none}.monitoring-page{padding:0 4px;overflow-x:hidden}.monitoring-page .monitoring-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.monitoring-page .page-header-inline{flex-direction:column;align-items:flex-start;gap:4px}.viewer-ip-banner{font-size:.78rem;padding:.4rem .75rem}.section-header-inline{flex-direction:column;align-items:flex-start;gap:6px}.section-header-actions{width:100%;justify-content:space-between}.geo-label{display:block;margin-left:0;margin-top:0;font-size:.7rem}.monitoring-pagination{gap:8px;font-size:.75rem}.monitoring-pagination button{padding:4px 10px;font-size:.75rem}.monitoring-total{display:none}.bot-log-output{font-size:.68rem;padding:8px 10px;max-height:300px}.usage-bar-header{font-size:.75rem}.usage-bar-value{font-size:.7rem}.monitoring-table-wrap{margin:0 -4px}.mon-mobile-list{display:flex;flex-direction:column;gap:0}.mon-mobile-row{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-bottom:1px solid var(--border);gap:8px;font-size:.78rem}.mon-mobile-row.row-viewer{background:#8000ff0f}.mon-mobile-row.row-recent{background:#ff50500a}.mon-mobile-row.row-flash{background:#ff50501a}.mon-mobile-left{display:flex;flex-direction:column;gap:0;min-width:0}.mon-mobile-left .text-cyan{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mon-mobile-right{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:.75rem}.request-cell-mobile{font-size:.7rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.mon-mobile-ts{font-size:.65rem;white-space:nowrap}}.toggle-tabs{display:inline-flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:4px;gap:4px;margin-bottom:20px}.toggle-tab{padding:10px 24px;background:none;border:none;border-radius:calc(var(--radius) - 2px);color:var(--text-dim);font-family:inherit;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.toggle-tab:hover{color:var(--text);background:#ffffff0a}.toggle-tab.active{background:#00c8c81f;color:var(--cyan)}@media(max-width:600px){.toggle-tabs{display:flex;width:100%}.toggle-tab{flex:1;text-align:center;padding:12px 16px;min-height:44px}}.events-page{max-width:900px}.host-dropdown{position:absolute;z-index:10;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-top:2px;max-height:200px;overflow-y:auto;width:100%}.form-field{position:relative}.host-dropdown-item{display:block;width:100%;padding:10px 14px;background:none;border:none;color:var(--text);font-family:inherit;font-size:.9rem;text-align:left;cursor:pointer}.host-dropdown-item:hover{background:#00c8c81a;color:var(--cyan)}.host-dropdown-empty{padding:10px 14px;color:var(--text-dim);font-size:.85rem}.event-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.ef-row{margin-bottom:16px}.ef-row:last-of-type{margin-bottom:0}.ef-full .form-field{width:100%}.ef-half{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ef-actions{display:flex;gap:12px;padding-top:4px}.ef-actions .btn-primary,.ef-actions .btn-secondary{flex:1;padding:12px 20px;font-size:.95rem}.event-form textarea{width:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:10px 12px;font-family:inherit;font-size:.9rem;resize:vertical}.event-form textarea:focus{border-color:var(--cyan);outline:none}.event-form .form-field input,.event-form .form-field select{width:100%}@media(max-width:600px){.event-form{padding:16px}.ef-half{grid-template-columns:1fr 1fr;gap:10px}.ef-actions .btn-primary,.ef-actions .btn-secondary{min-height:48px;font-size:1rem}}.event-list{display:flex;flex-direction:column;gap:12px}.event-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.event-card-header{padding:16px;cursor:pointer}.event-card-header:hover{background:var(--bg-hover, rgba(255,255,255,.03))}.event-card-title{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}.event-name{font-weight:600;font-size:1.05rem}.event-status{font-size:.75rem;padding:2px 8px;border-radius:10px;font-weight:500;text-transform:capitalize}.event-status-scheduled{background:#00c8c826;color:var(--cyan)}.event-status-completed{background:#00c85026;color:var(--green)}.event-status-cancelled{background:#c8323226;color:var(--red)}.event-recurrence{font-size:.72rem;padding:2px 6px;border-radius:8px;background:#a078ff26;color:var(--purple, #a78bfa);text-transform:capitalize}.event-meta{display:flex;gap:16px;font-size:.85rem;color:var(--text-dim);flex-wrap:wrap}.event-actions{display:flex;gap:8px;padding:0 16px 12px}.event-detail{padding:0 16px 16px;border-top:1px solid var(--border)}.event-description{margin:12px 0;color:var(--text-dim);white-space:pre-wrap}.event-attendees h4{margin:12px 0 8px;font-size:.9rem}.event-attendee-list{display:flex;flex-wrap:wrap;gap:6px}.event-attendee-tag{background:var(--bg-hover, rgba(255,255,255,.06));border:1px solid var(--border);border-radius:6px;padding:3px 10px;font-size:.82rem}.events-page .pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px}.events-page .pagination-info{font-size:.85rem;color:var(--text-dim)}@media(max-width:600px){.event-meta{flex-direction:column;gap:4px}.event-actions{gap:8px}.event-actions .btn-secondary,.event-actions .btn-primary,.event-actions .btn-danger-sm{flex:1;min-height:44px;font-size:.9rem;text-align:center;padding:10px 8px}}.help-page{max-width:900px}.faq-list{display:flex;flex-direction:column;gap:12px}.faq-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s}.faq-item.open{border-color:var(--cyan)}.faq-question{display:flex;justify-content:space-between;align-items:center;width:100%;padding:18px 20px;background:none;border:none;color:var(--text);font-size:.95rem;font-weight:500;cursor:pointer;text-align:left;font-family:inherit;line-height:1.5;border-radius:var(--radius);transition:background .15s}.faq-question:hover{background:#ffffff08}.faq-toggle{font-size:1.3rem;color:var(--text-dim);flex-shrink:0;margin-left:16px;width:24px;text-align:center;transition:color .2s}.faq-item.open .faq-toggle{color:var(--cyan)}.faq-answer{padding:0 20px 18px;color:var(--text-dim);font-size:.9rem;line-height:1.7}.help-tier-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px}.help-tier-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;font-family:inherit;transition:all .2s}.help-tier-btn:hover{border-color:var(--text-dim);color:var(--text);background:#ffffff08}.help-tier-btn.active{border-color:var(--cyan);background:#00c8c814;color:var(--text)}.help-tier-label{font-size:.9rem;font-weight:600}.help-tier-btn.active .help-tier-label{color:var(--cyan)}.help-tier-desc{font-size:.72rem;opacity:.7}.help-cmd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}.help-cmd-item{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.help-cmd-code{font-size:.85rem;color:var(--cyan);white-space:nowrap}.help-cmd-name{font-weight:600;font-size:.95rem}.help-cmd-tier{font-size:.72rem;color:var(--cyan);background:#00c8c81a;padding:2px 10px;border-radius:10px}.help-cmd-desc{font-size:.85rem;color:var(--text-dim);width:100%}@media(max-width:600px){.help-tier-grid{grid-template-columns:repeat(3,1fr)}.help-tier-btn{padding:12px 8px}.help-tier-label{font-size:.8rem}.help-tier-desc{font-size:.65rem}.help-cmd-grid{grid-template-columns:1fr}.faq-question{padding:16px;font-size:.9rem}.faq-answer{padding:0 16px 16px}}.ranks-page{max-width:900px}.ranks-intro{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:20px}.ranks-intro p{margin:0;font-size:.9rem;line-height:1.6}.ranks-intro p+p{margin-top:8px}.ranks-intro code{background:#00c8c81a;color:var(--cyan);padding:1px 6px;border-radius:4px;font-size:.85rem}.ranks-list{display:flex;flex-direction:column;gap:12px}.rank-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;transition:border-color .2s}.rank-card.configured{border-color:#00c8c84d}.rank-card-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.rank-order{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#ffffff0d;color:var(--text-dim);font-size:.8rem;font-weight:600;flex-shrink:0}.rank-card.configured .rank-order{background:#00c8c826;color:var(--cyan)}.rank-name{font-size:1.05rem;font-weight:600;color:var(--text-bright)}.rank-current{margin-left:auto;font-size:.8rem;color:var(--text-dim);background:#ffffff0a;padding:3px 10px;border-radius:10px}.rank-card-body{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.rank-field{display:flex;flex-direction:column;gap:4px}.rank-field label{font-size:.78rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.rank-field input{width:100%}.rank-actions{display:flex;gap:8px;align-items:center}.rank-card .form-error,.rank-card .form-success{margin-top:10px;margin-bottom:0}@media(max-width:600px){.rank-card-body{grid-template-columns:1fr;gap:10px}.rank-current{margin-left:0;width:100%;text-align:center}.rank-actions{width:100%}.rank-actions .btn-primary,.rank-actions .btn-danger-sm{flex:1;min-height:44px}}.status-page .page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.status-refresh-pill{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text-dim);background:#ffffff0a;padding:6px 12px;border-radius:999px;border:1px solid var(--border)}.status-refresh-dot{width:8px;height:8px;border-radius:50%;background:var(--green, #22c55e);box-shadow:0 0 8px #22c55e99;animation:status-pulse 2s ease-in-out infinite}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.5}}.status-error-banner{background:#ef444414;border:1px solid rgba(239,68,68,.25);color:var(--red, #ef4444);padding:10px 14px;border-radius:10px;font-size:.85rem;margin-bottom:20px}.status-section{margin-bottom:32px}.status-section-title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-bright);margin-bottom:6px}.status-section-sub{font-size:.85rem;color:var(--text-dim);margin-bottom:12px}.status-list{display:flex;flex-direction:column;gap:10px}.status-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:var(--bg-card, #111827);border:1px solid var(--border, rgba(255,255,255,.08));border-radius:12px;padding:16px 18px}.status-row-main{min-width:0;flex:1}.status-row-label{font-weight:600;color:var(--text-bright, #f8fafc);margin-bottom:4px;font-size:.98rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-source-link{font-size:.72rem;color:var(--text-dim);text-decoration:none;font-weight:400;border-bottom:1px dotted var(--text-dim)}.status-source-link:hover{color:var(--cyan);border-bottom-color:var(--cyan)}.status-row-desc{color:var(--text-dim, #94a3b8);font-size:.85rem;line-height:1.5}.status-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.status-meta-time{font-size:.78rem;color:var(--text-dim)}.status-meta-time strong{color:var(--text);font-weight:500}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em}.status-badge:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%}.status-badge-online{color:var(--green, #22c55e);background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.status-badge-online:before{background:var(--green, #22c55e);box-shadow:0 0 6px #22c55eb3}.status-badge-offline{color:var(--red, #ef4444);background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.status-badge-offline:before{background:var(--red, #ef4444);box-shadow:0 0 6px #ef4444b3}.status-badge-degraded{color:var(--gold, #f59e0b);background:#f59e0b1a;border:1px solid rgba(245,158,11,.3)}.status-badge-degraded:before{background:var(--gold, #f59e0b);box-shadow:0 0 6px #f59e0bb3}.status-badge-unknown{color:#6b7280;background:#6b72801a;border:1px solid rgba(107,114,128,.3)}.status-badge-unknown:before{background:#6b7280}.status-footer-time{text-align:center;font-size:.78rem;color:var(--text-dim);margin-top:24px}@media(max-width:640px){.status-row{flex-direction:column;align-items:stretch}.status-row-meta{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:12px}}
