*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;color:#1a1a1a;line-height:1.5}.demo-page{min-height:100vh;display:flex;flex-direction:column}.demo-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fff;border-bottom:1px solid #e0e0e0;flex-wrap:wrap}.demo-header__left{display:flex;align-items:center;gap:8px;flex-shrink:0}.demo-header__logo{font-size:20px;font-weight:700;color:#22c55e;letter-spacing:-.5px}.demo-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;background:#dcfce7;color:#166534;border-radius:10px}.demo-header__link{display:flex;align-items:center;gap:6px;flex:1;min-width:200px}.demo-link-input{flex:1;padding:6px 10px;border:1px solid #d4d4d4;border-radius:6px;font-size:13px;color:#525252;background:#fafafa;outline:none}.demo-link-input:focus{border-color:#22c55e}.demo-header__right{display:flex;align-items:center;gap:10px;flex-shrink:0}.demo-ws-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.demo-ws-dot--connected{background:#22c55e;box-shadow:0 0 4px #22c55e}.demo-ws-dot--disconnected{background:#ef4444}.demo-btn{padding:6px 14px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.demo-btn:disabled{opacity:.5;cursor:not-allowed}.demo-btn--primary{background:#22c55e;color:#fff}.demo-btn--primary:hover:not(:disabled){background:#16a34a}.demo-btn--copy{background:#e5e5e5;color:#404040}.demo-btn--copy:hover{background:#d4d4d4}.demo-btn--reset{background:transparent;color:#737373;border:1px solid #d4d4d4}.demo-btn--reset:hover{background:#fafafa}.demo-btn--outline{background:transparent;color:#22c55e;border:1px solid #22c55e;width:100%;margin-top:12px}.demo-btn--outline:hover:not(:disabled){background:#f0fdf4}.demo-info-bar{padding:10px 16px;background:#e8f5e9;color:#2e7d32;font-size:13px;line-height:1.4;text-align:center}.demo-columns{display:flex;flex-direction:column;gap:16px;padding:16px;flex:1}@media(min-width:900px){.demo-columns{flex-direction:row}.demo-column{flex:1}}.demo-column{background:#fff;border-radius:10px;border:1px solid #e5e5e5;padding:16px}.demo-column__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.demo-column__header h2{font-size:15px;font-weight:600;color:#262626}.demo-placeholder{font-size:13px;color:#a3a3a3;text-align:center;padding:24px 0}.demo-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:#737373;cursor:pointer}.demo-toggle input{accent-color:#22c55e}.demo-gates{display:flex;gap:8px;justify-content:center}.demo-gate{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;border-radius:8px;border:1px solid #e5e5e5;min-width:90px}.demo-gate--closed{background:#fef2f2;border-color:#fecaca}.demo-gate--open{background:#f0fdf4;border-color:#bbf7d0;animation:gate-pulse 1s ease-in-out infinite}@keyframes gate-pulse{0%,to{opacity:1}50%{opacity:.7}}.demo-gate__icon{font-size:20px}.demo-gate__label{font-size:11px;color:#737373;white-space:nowrap}.demo-users-list{list-style:none;display:flex;flex-direction:column;gap:2px}.demo-user-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;transition:background .15s}.demo-user-row:hover{background:#fafafa}.demo-user-row--revoked{opacity:.45}.demo-user-row__avatar{width:32px;height:32px;border-radius:50%;background:#e8f5e9;color:#2e7d32;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.demo-user-row__info{display:flex;flex-direction:column;flex:1;min-width:0}.demo-user-row__name{font-size:14px;font-weight:500;color:#262626;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-user-row__house{font-size:12px;color:#737373}.demo-status-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.demo-status-badge--pending{background:#fef3c7;color:#92400e}.demo-status-badge--active{background:#dcfce7;color:#166534}.demo-status-badge--revoked{background:#f3f4f6;color:#6b7280}.demo-user-row__actions{position:relative;flex-shrink:0}.demo-btn-icon{width:32px;height:32px;border:none;background:transparent;border-radius:6px;font-size:18px;color:#737373;cursor:pointer;display:flex;align-items:center;justify-content:center;letter-spacing:1px}.demo-btn-icon:hover{background:#f0f0f0}.demo-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.demo-modal{background:#fff;border-radius:20px;padding:28px 24px 20px;width:90%;max-width:340px;box-shadow:0 8px 32px #0003}.demo-modal__title{font-size:20px;font-weight:700;text-align:center;margin-bottom:16px;color:#212121}.demo-form-label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;color:#757575;margin-bottom:12px}.demo-form-input{padding:10px 14px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:15px;outline:none;transition:border-color .15s}.demo-form-input:focus{border-color:#22c55e}.demo-btn--full{width:100%;padding:12px;font-size:16px;font-weight:600;margin-top:4px}.demo-modal__cancel{display:block;width:100%;background:none;border:none;padding:10px;font-size:14px;font-weight:500;color:#757575;cursor:pointer;text-align:center}.demo-modal__cancel:hover{color:#424242}.demo-modal__hint{font-size:10px;color:#bdbdbd;text-align:center;margin-top:4px}.demo-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.demo-popover{position:absolute;right:0;top:100%;z-index:51;background:#fff;border-radius:16px;box-shadow:0 4px 24px #0000002e;padding:16px;width:260px;margin-top:4px}.demo-popover__header strong{display:block;font-size:16px;color:#212121}.demo-popover__sub{display:flex;align-items:center;gap:8px;font-size:13px;color:#757575;margin-top:2px}.demo-popover__divider{border:none;border-top:1px solid #f0f0f0;margin:10px 0}.demo-popover__invite-url{font-size:12px;color:#525252;word-break:break-all;margin-bottom:8px;padding:6px 8px;background:#fafafa;border-radius:6px}.demo-popover__action{display:block;width:100%;padding:10px 8px;border:none;background:none;text-align:left;font-size:15px;cursor:pointer;border-radius:8px;color:#4caf50;transition:background .1s}.demo-popover__action:hover{background:#f5f5f5}.demo-popover__action:disabled{opacity:.5;cursor:not-allowed}.demo-popover__action--danger{color:#ef5350}.demo-popover__debt-row{display:flex;align-items:center;justify-content:space-between;padding:8px;font-size:15px;color:#424242}.demo-toggle-btn{padding:4px 14px;border:1px solid #e0e0e0;border-radius:12px;background:#f5f5f5;font-size:12px;font-weight:600;cursor:pointer;color:#757575;transition:all .15s}.demo-toggle-btn--active{background:#ef5350;border-color:#ef5350;color:#fff}.demo-requests-list{list-style:none;display:flex;flex-direction:column;gap:2px}.demo-request-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;transition:background .15s}.demo-request-row:hover{background:#fafafa}.demo-request-row--fulfilled{opacity:.45}.demo-request-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0}.demo-request-badge--guest{background:#dbeafe;color:#1e40af}.demo-request-badge--courier{background:#fef3c7;color:#92400e}.demo-request-badge--master{background:#ede9fe;color:#5b21b6}.demo-request-badge--default{background:#e5e5e5;color:#525252}.demo-request-row__info{flex:1;min-width:0}.demo-request-row__text{font-size:13px;color:#525252;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.demo-request-row__ack{font-size:14px;flex-shrink:0;color:#a3a3a3}.demo-request-row__ack--done{color:#22c55e}.demo-request-detail{font-size:13px;color:#525252;padding:4px 8px}.demo-log{margin-top:12px;border-top:1px solid #f0f0f0;padding-top:12px}.demo-log__list{list-style:none;display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.demo-log__entry{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px}.demo-log__badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;background:#e5e5e5;color:#525252}.demo-log__badge--invite_created{background:#dbeafe;color:#1e40af}.demo-log__badge--jwt_issued{background:#dcfce7;color:#166534}.demo-log__badge--invite{background:#dbeafe;color:#1e40af}.demo-log__badge--jwt{background:#dcfce7;color:#166534}.demo-log__badge--open{background:#fef3c7;color:#92400e}.demo-log__badge--ack{background:#d1fae5;color:#065f46}.demo-log__badge--info{background:#e0e7ff;color:#3730a3}.demo-log__badge--debt{background:#fce7f3;color:#9d174d}.demo-log__badge--pass{background:#f0fdf4;color:#15803d}.demo-log__badge--revoke,.demo-log__badge--user_revoked{background:#fee2e2;color:#991b1b}.demo-log__text{flex:1;min-width:0;color:#525252;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-log__time{flex-shrink:0;color:#a3a3a3;font-size:11px}.demo-metrics-bar{display:flex;gap:12px;padding:10px 16px;background:#fff;border-bottom:1px solid #e0e0e0;overflow-x:auto;flex-wrap:wrap}.demo-metric{display:flex;flex-direction:column;align-items:center;min-width:80px;padding:6px 12px;border-radius:8px;background:#fafafa}.demo-metric__value{font-size:20px;font-weight:700;color:#22c55e;line-height:1.2}.demo-metric__label{font-size:11px;color:#737373;white-space:nowrap}
