:root{--color-bg:#faf7f2;--color-bg-warm:#f5f1ea;--color-surface:#fff;--color-surface-hover:#f0ece4;--color-surface-active:#e8e3da;--color-surface-elevated:#fff;--color-primary:#2d5a3d;--color-primary-light:#3a7350;--color-primary-dark:#1e3f2b;--color-primary-ghost:#2d5a3d12;--color-primary-ghost-hover:#2d5a3d21;--color-accent:#8b6914;--color-accent-light:#a67d1a;--color-text:#2c2824;--color-text-secondary:#6b6560;--color-text-tertiary:#9c958e;--color-border:#e2ddd5;--color-border-light:#ebe7e0;--color-danger:#b5453a;--color-danger-ghost:#b5453a14;--color-online:#3a8745;--color-offline:#9c958e;--color-shadow:#2c28240f;--color-shadow-md:#2c28241a;--color-overlay:#2c282473;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Outfit", -apple-system, sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px var(--color-shadow);--shadow-md:0 4px 12px var(--color-shadow-md);--shadow-lg:0 8px 30px var(--color-shadow-md);--shadow-inset:inset 0 1px 2px #2c282414;--shadow-gold:0 0 16px #2d5a3d0f;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--header-h:64px;--max-w:480px;--gold-gradient:linear-gradient(135deg, #2d5a3d, #3a7350, #1e3f2b);--surface-gradient:linear-gradient(180deg, var(--color-surface) 0%, var(--color-bg) 100%)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);min-height:100dvh;line-height:1.5;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:9999;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:9998;background:radial-gradient(at 15% 0,#2d5a3d0a 0%,#0000 50%),radial-gradient(at 85% 100%,#8b691408 0%,#0000 50%);position:fixed;inset:0}button{font-family:var(--font-body);cursor:pointer;font-size:inherit;color:inherit;background:0 0;border:none}input,textarea,select{font-family:var(--font-body);color:var(--color-text);font-size:1rem}a{color:var(--color-primary);text-decoration:none}.app-shell{flex-direction:column;min-height:100dvh;display:flex;position:relative}.onboarding{text-align:center;background:radial-gradient(ellipse at 30% 10%, #2d5a3d0f 0%, transparent 55%), radial-gradient(ellipse at 70% 90%, #8b69140a 0%, transparent 55%), var(--color-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem 1.5rem;animation:.8s cubic-bezier(.22,1,.36,1) onboarding-in;display:flex}@keyframes onboarding-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.onboarding-icon{border-radius:var(--radius-xl);background:var(--gold-gradient);width:80px;height:80px;box-shadow:0 8px 32px #2d5a3d33, var(--shadow-gold);color:#fff;justify-content:center;align-items:center;margin-bottom:1.5rem;font-size:2.2rem;display:flex}.onboarding h1{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-text);margin-bottom:.5rem;font-size:2rem;font-weight:400}.onboarding .subtitle{color:var(--color-text-secondary);max-width:280px;margin-bottom:2.5rem;font-size:.9rem;font-weight:300;line-height:1.6}.onboarding-form{flex-direction:column;gap:1rem;width:100%;max-width:320px;display:flex}.onboarding-form label{text-align:left;color:var(--color-primary);text-transform:uppercase;letter-spacing:.12em;flex-direction:column;gap:.4rem;font-size:.72rem;font-weight:500;display:flex}.onboarding-form input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--transition-base), box-shadow var(--transition-base);color:var(--color-text);padding:.85rem 1rem;font-size:1rem}.onboarding-form input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost), var(--shadow-gold);outline:none}.onboarding-form input::placeholder{color:var(--color-text-tertiary)}.btn-primary{background:var(--gold-gradient);color:#fff;border-radius:var(--radius-md);transition:transform var(--transition-fast), box-shadow var(--transition-base), opacity var(--transition-fast);letter-spacing:.03em;text-transform:uppercase;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-size:.9rem;font-weight:600;display:inline-flex;box-shadow:0 2px 12px #2d5a3d33}.btn-primary:hover{box-shadow:0 6px 20px #2d5a3d4d, var(--shadow-gold);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.btn-ghost{color:var(--color-text-secondary);border-radius:var(--radius-md);transition:background var(--transition-fast), color var(--transition-fast);letter-spacing:.01em;padding:.6rem 1rem;font-size:.85rem;font-weight:500}.btn-ghost:hover{background:var(--color-primary-ghost);color:var(--color-primary)}.btn-icon{border-radius:var(--radius-full);width:40px;height:40px;transition:background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;display:inline-flex}.btn-icon:hover{background:var(--color-primary-ghost-hover)}.group-list{background:var(--color-bg);flex-direction:column;min-height:100dvh;animation:.4s cubic-bezier(.22,1,.36,1) view-in;display:flex}@keyframes view-in{0%{opacity:0}to{opacity:1}}.group-list-header{z-index:10;background:var(--color-bg);justify-content:space-between;align-items:center;padding:1rem 1.25rem .75rem;display:flex;position:sticky;top:0}.group-list-header h2{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-text);font-size:1.8rem;font-weight:400}.group-list-header button[aria-label=Create\ group]{border-radius:var(--radius-full);background:var(--gold-gradient);color:#fff;width:42px;height:42px;transition:transform var(--transition-fast), box-shadow var(--transition-fast);justify-content:center;align-items:center;font-size:1.5rem;font-weight:300;line-height:1;display:flex;box-shadow:0 2px 12px #2d5a3d33}.group-list-header button[aria-label=Create\ group]:hover{transform:scale(1.06);box-shadow:0 4px 20px #2d5a3d4d}.group-list-header button[aria-label=Create\ group]:active{transform:scale(.96)}.group-list-empty{color:var(--color-text-tertiary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:3rem 2rem;font-size:.9rem;display:flex}.group-list-empty:before{content:"";border-radius:var(--radius-lg);background:var(--color-primary-ghost);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' fill='none' stroke='%23C8A45C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H7l-4 3V7a2 2 0 0 1 2-2h8'/%3E%3Cpath d='M18 2h4v4M22 2l-6 6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;width:64px;height:64px;display:block}.group-list ul{flex-direction:column;gap:2px;padding:.25rem .75rem 1rem;list-style:none;display:flex}.group-list-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:.85rem;padding:.85rem .75rem;display:flex;position:relative}.group-list-item:hover{background:var(--color-surface-hover)}.group-list-item:active{background:var(--color-surface-active)}.group-list-item.selected{background:var(--color-primary-ghost)}.group-list-item:before{content:"";border-radius:var(--radius-md);background:var(--color-primary-ghost);border:1px solid #2d5a3d1a;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.group-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.95rem;font-weight:500;overflow:hidden}.group-preview{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem;font-size:.8rem;font-weight:300;display:block;overflow:hidden}.unread-badge{background:var(--color-primary);color:#fff;border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-flex}.group-create-form{background:var(--color-bg);flex-direction:column;min-height:100dvh;padding:1.25rem;animation:.35s cubic-bezier(.22,1,.36,1) slide-up;display:flex}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.group-create-form h2{font-family:var(--font-display);margin-bottom:1.5rem;font-size:1.6rem;font-weight:400}.group-create-form label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.12em;flex-direction:column;gap:.4rem;margin-bottom:1rem;font-size:.72rem;font-weight:500;display:flex}.group-create-form input[type=text]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--transition-base), box-shadow var(--transition-base);color:var(--color-text);padding:.8rem 1rem}.group-create-form input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.selected-members{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.member-chip{background:var(--color-primary-ghost);color:var(--color-primary-light);border-radius:var(--radius-full);border:1px solid #2d5a3d1f;align-items:center;gap:.3rem;padding:.35rem .6rem .35rem .75rem;font-size:.8rem;font-weight:500;display:inline-flex}.member-chip button{border-radius:var(--radius-full);width:18px;height:18px;color:var(--color-primary);transition:background var(--transition-fast);justify-content:center;align-items:center;font-size:.85rem;display:flex}.member-chip button:hover{background:#2d5a3d33}.member-search-results{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);max-height:200px;margin-bottom:1rem;list-style:none;overflow-y:auto}.member-search-results:empty{display:none}.member-search-results li button{text-align:left;width:100%;transition:background var(--transition-fast);color:var(--color-text);padding:.7rem 1rem;font-size:.88rem}.member-search-results li button:hover{background:var(--color-surface-hover)}.form-actions{gap:.75rem;margin-top:auto;padding-top:1.5rem;display:flex}.form-actions button[type=button]{border-radius:var(--radius-md);color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);transition:background var(--transition-fast), border-color var(--transition-fast);flex:1;padding:.8rem;font-weight:500}.form-actions button[type=button]:hover{background:var(--color-surface-hover);border-color:var(--color-text-tertiary)}.form-actions button[type=submit]{border-radius:var(--radius-md);background:var(--gold-gradient);color:#fff;transition:opacity var(--transition-fast), transform var(--transition-fast);text-transform:uppercase;letter-spacing:.04em;flex:1;padding:.8rem;font-size:.85rem;font-weight:600;box-shadow:0 2px 12px #2d5a3d33}.form-actions button[type=submit]:disabled{opacity:.35;cursor:not-allowed}.form-actions button[type=submit]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 16px #2d5a3d4d}.group-detail{background:var(--color-bg);flex-direction:column;height:100dvh;animation:.3s cubic-bezier(.22,1,.36,1) slide-left;display:flex}@keyframes slide-left{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.group-detail-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;min-height:var(--header-h);align-items:center;gap:.5rem;padding:.65rem .75rem;display:flex;position:sticky;top:0}.group-detail-header button[aria-label="Back to groups"]{border-radius:var(--radius-full);width:36px;height:36px;transition:background var(--transition-fast);color:var(--color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:1.15rem;display:flex}.group-detail-header button[aria-label="Back to groups"]:hover{background:var(--color-primary-ghost);color:var(--color-primary)}.group-detail-header h2{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;flex:1;min-width:0;font-size:1.15rem;font-weight:400;overflow:hidden}.connection-status{text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-full);flex-shrink:0;padding:.25rem .6rem;font-size:.65rem;font-weight:600}.connection-status.online{color:var(--color-online);background:#3a87451a}.connection-status.offline{color:var(--color-text-tertiary);background:var(--color-surface-active)}.group-detail-header button[aria-label="Start voice call"],.group-detail-header button[aria-label="Start video call"]{border-radius:var(--radius-full);width:36px;height:36px;color:var(--color-primary);transition:background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.group-detail-header button[aria-label="Start voice call"]:hover,.group-detail-header button[aria-label="Start video call"]:hover{background:var(--color-primary-ghost)}.group-detail-header button[aria-label=Toggle\ members]{color:var(--color-text-secondary);border-radius:var(--radius-full);transition:background var(--transition-fast), color var(--transition-fast);white-space:nowrap;letter-spacing:.02em;flex-shrink:0;padding:.35rem .7rem;font-size:.75rem;font-weight:500}.group-detail-header button[aria-label=Toggle\ members]:hover{background:var(--color-primary-ghost);color:var(--color-primary)}.group-detail-body{flex:1;display:flex;overflow:hidden}.chat-area{flex-direction:column;flex:1;min-width:0;display:flex}.message-thread{flex-direction:column;flex:1;display:flex;overflow:hidden}.load-more{color:var(--color-primary);text-align:center;border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);letter-spacing:.02em;padding:.6rem;font-size:.78rem;font-weight:500}.load-more:hover{background:var(--color-primary-ghost)}.load-more:disabled{color:var(--color-text-tertiary)}.messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:.35rem;padding:1rem .85rem;display:flex;overflow-y:auto}.message{border-radius:var(--radius-lg);max-width:82%;padding:.65rem .9rem;animation:.25s cubic-bezier(.22,1,.36,1) msg-in;position:relative}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.message.mine{color:#fff;background:linear-gradient(135deg,#c8a45c,#b89545);border-bottom-right-radius:4px;align-self:flex-end}.message.theirs{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-bottom-left-radius:4px;align-self:flex-start}.message.mentioned{box-shadow:inset 3px 0 0 var(--color-primary)}.sender-name{color:var(--color-primary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.15rem;font-size:.68rem;font-weight:600;display:block}.message.mine .sender-name{color:#0f0e0c80}.message-body{word-break:break-word;font-size:.9rem;font-weight:300;line-height:1.45;display:block}.message-meta{justify-content:flex-end;align-items:center;gap:.3rem;margin-top:.2rem;display:flex}.message-meta time{opacity:.5;font-size:.62rem}.delivery-sent,.delivery-delivered,.delivery-read{font-size:.7rem}.delivery-sent{opacity:.4}.delivery-delivered{opacity:.6}.delivery-read{color:var(--color-accent-light);opacity:1}.message.mine .delivery-read{color:#1a3a1a}.typing-indicator{color:var(--color-text-tertiary);padding:.4rem .85rem;font-size:.76rem;font-style:italic;font-weight:300}.message-input{background:var(--color-surface);border-top:1px solid var(--color-border);align-items:flex-end;gap:.5rem;padding:.6rem .75rem;display:flex}.input-wrapper{flex:1;position:relative}.message-input textarea{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);width:100%;color:var(--color-text);resize:none;min-height:42px;max-height:120px;transition:border-color var(--transition-base), box-shadow var(--transition-base);padding:.7rem .85rem;line-height:1.4}.message-input textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.message-input textarea::placeholder{color:var(--color-text-tertiary)}.message-input button[type=submit]{border-radius:var(--radius-full);background:var(--gold-gradient);color:#fff;width:42px;height:42px;transition:opacity var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex;box-shadow:0 2px 8px #2d5a3d33}.message-input button[type=submit]:disabled{opacity:.25;cursor:not-allowed;box-shadow:none}.message-input button[type=submit]:not(:disabled):hover{transform:scale(1.06);box-shadow:0 4px 16px #2d5a3d4d}.message-input button[type=submit]:not(:disabled):active{transform:scale(.95)}.mention-list{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:20;max-height:180px;margin-bottom:.35rem;list-style:none;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}.mention-list li{cursor:pointer;transition:background var(--transition-fast);color:var(--color-text);padding:.6rem .85rem;font-size:.86rem}.mention-list li:hover{background:var(--color-primary-ghost);color:var(--color-primary)}.member-list{border-left:1px solid var(--color-border);background:var(--color-surface);width:220px;padding:1rem .75rem;animation:.25s cubic-bezier(.22,1,.36,1) slide-right;overflow-y:auto}@keyframes slide-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.member-list h3{font-family:var(--font-display);color:var(--color-primary);letter-spacing:.02em;margin-bottom:.75rem;font-size:1rem;font-weight:400}.member-actions{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.member-actions button{border-radius:var(--radius-sm);text-align:left;transition:background var(--transition-fast), color var(--transition-fast);color:var(--color-text-secondary);padding:.5rem .65rem;font-size:.76rem;font-weight:500}.member-actions button:hover{background:var(--color-primary-ghost);color:var(--color-primary)}.member-actions .leave-btn{color:var(--color-danger)}.member-actions .leave-btn:hover{background:var(--color-danger-ghost);color:var(--color-danger)}.member-list ul{flex-direction:column;gap:2px;list-style:none;display:flex}.member-item{border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:.45rem .5rem;font-size:.82rem;display:flex}.member-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.35rem;min-width:0;display:flex;overflow:hidden}.you-badge{color:var(--color-text-tertiary);background:var(--color-surface-active);border-radius:var(--radius-sm);padding:.1rem .4rem;font-size:.58rem;font-weight:600}.remove-btn{color:var(--color-danger);opacity:0;transition:opacity var(--transition-fast);border-radius:var(--radius-sm);padding:.2rem .4rem;font-size:.72rem}.member-item:hover .remove-btn{opacity:1}.remove-btn:hover{background:var(--color-danger-ghost)}.active-call-area{background:#0a0908;border-bottom:1px solid #2d5a3d26;flex-direction:column;gap:.75rem;padding:1rem;animation:.3s call-in;display:flex}@keyframes call-in{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.network-warning{color:#e8a0a0;border-radius:var(--radius-sm);text-align:center;background:#c45f5f1f;padding:.5rem .85rem;font-size:.76rem;font-weight:500}.call-controls{justify-content:center;align-items:center;gap:1rem;padding:.5rem;display:flex}.control-btn{border-radius:var(--radius-full);width:48px;height:48px;color:var(--color-text);transition:background var(--transition-fast), transform var(--transition-fast);background:#ffffff14;border:1px solid #ffffff0f;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.control-btn:hover{background:#ffffff24;transform:scale(1.08)}.control-btn.muted,.control-btn.camera-off{background:#fff3}.control-btn.leave-btn{background:var(--color-danger);border-color:#0000;width:56px}.control-btn.leave-btn:hover{background:#d06060}.join-call-banner{background:#8b691414;border-bottom:1px solid #8b69141f;justify-content:space-between;align-items:center;padding:.65rem 1rem;display:flex}.banner-text{color:var(--color-accent);font-size:.8rem;font-weight:500}.join-btn{background:var(--color-accent);color:#fff;border-radius:var(--radius-full);transition:background var(--transition-fast), transform var(--transition-fast);letter-spacing:.02em;padding:.4rem 1rem;font-size:.78rem;font-weight:600}.join-btn:hover{background:#528a62;transform:scale(1.03)}.voice-participant-list{padding:.5rem}.voice-participant-list h3{color:#ede8df66;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.72rem;font-weight:600}.voice-participant-list ul{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.voice-participant{border-radius:var(--radius-full);transition:box-shadow var(--transition-base);background:#ffffff0f;border:1px solid #ffffff0a;align-items:center;gap:.45rem;padding:.4rem .6rem;display:flex}.voice-participant.speaking{box-shadow:0 0 0 2px var(--color-accent), 0 0 16px #8b691440}.participant-avatar{border-radius:var(--radius-full);background:var(--gold-gradient);color:#fff;justify-content:center;align-items:center;width:28px;height:28px;font-size:.68rem;font-weight:600;display:flex}.participant-name{color:#ede8dfcc;font-size:.78rem;font-weight:400}.mute-indicator{color:#ede8df4d;text-transform:uppercase;letter-spacing:.04em;font-size:.62rem;font-weight:600}.participant-grid{border-radius:var(--radius-md);gap:3px;display:grid;overflow:hidden}.participant-grid.grid-1x2,.participant-grid.grid-2x2{grid-template-columns:1fr 1fr}.participant-grid.grid-3x3{grid-template-columns:repeat(3,1fr)}.participant-tile{aspect-ratio:4/3;background:#0a0908;position:relative;overflow:hidden}.avatar-fallback{background:linear-gradient(135deg,#1a1816,#0f0e0c);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.avatar-letter{color:#2d5a3d66;font-size:2rem;font-weight:400;font-family:var(--font-display)}.video-tile{object-fit:cover;width:100%;height:100%}.participant-overlay{background:linear-gradient(#0000,#0009);align-items:center;gap:.35rem;padding:.4rem .6rem;display:flex;position:absolute;bottom:0;left:0;right:0}.participant-label{color:#fff;font-size:.7rem;font-weight:400}.mute-badge{color:#fff;border-radius:var(--radius-sm);letter-spacing:.02em;background:#c45f5fa6;padding:.1rem .35rem;font-size:.58rem;font-weight:600}.call-notification{max-width:calc(var(--max-w) - 2rem);background:var(--color-surface-elevated);border-radius:var(--radius-lg);width:calc(100% - 2rem);box-shadow:var(--shadow-lg), 0 0 0 1px var(--color-border);z-index:100;align-items:center;gap:1rem;padding:1rem;animation:.4s cubic-bezier(.22,1,.36,1) notify-in;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}@keyframes notify-in{0%{opacity:0;transform:translate(-50%)translateY(-20px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.call-notification-info{flex-direction:column;flex:1;gap:.1rem;display:flex}.call-type{text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent);font-size:.65rem;font-weight:600}.call-group{font-size:.95rem;font-weight:500}.call-initiator{color:var(--color-text-secondary);font-size:.8rem;font-weight:300}.call-notification-actions{gap:.5rem;display:flex}.decline-btn{border-radius:var(--radius-full);background:var(--color-danger);color:#fff;width:42px;height:42px;transition:background var(--transition-fast);justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.decline-btn:hover{background:#d06060}.accept-btn{border-radius:var(--radius-full);background:var(--color-accent);color:#fff;width:42px;height:42px;transition:background var(--transition-fast);justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.accept-btn:hover{background:#528a62}.user-bar{border-bottom:1px solid var(--color-border);align-items:center;gap:.65rem;padding:.6rem 1.25rem .4rem;display:flex}.user-bar-avatar{border-radius:var(--radius-full);background:var(--gold-gradient);color:#fff;width:34px;height:34px;font-size:.8rem;font-weight:600;font-family:var(--font-display);transition:box-shadow var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #2d5a3d26}.user-bar-avatar:hover{transform:scale(1.05);box-shadow:0 3px 12px #2d5a3d40}.user-bar-name{color:var(--color-text-secondary);letter-spacing:.01em;font-size:.82rem;font-weight:400}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}@media (max-width:420px){.member-list{z-index:50;border-left:none;width:100%;padding-top:2rem;position:fixed;inset:0}}.qr-section-header{justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.qr-section-header h2{font-family:var(--font-display);color:var(--color-text);letter-spacing:.02em;margin:0;font-size:1.35rem;font-weight:400}.qr-list{flex-direction:column;gap:.75rem;padding:0 1.25rem 1.25rem;display:flex}.qr-codes-view{flex:1;animation:.3s both view-in}.qr-list-header{justify-content:space-between;align-items:center;padding:1.25rem 1.25rem .75rem;display:flex}.qr-list-header h2{font-family:var(--font-display);color:var(--color-text);letter-spacing:.02em;margin:0;font-size:1.4rem;font-weight:400}.qr-list-empty{text-align:center;color:var(--color-text-secondary);padding:3rem 1.5rem;font-size:.9rem;font-style:italic;font-weight:300}.qr-list-items{flex-direction:column;gap:.75rem;padding:0 1.25rem 1.25rem;list-style:none;display:flex}.qr-list-item{position:relative}.qr-card-dates{color:var(--color-text-secondary);font-size:.75rem;font-weight:300;line-height:1.4}.qr-card-status{text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);align-items:center;width:fit-content;padding:.15rem .55rem;font-size:.65rem;font-weight:600;display:inline-flex}.qr-card-status--active{color:var(--color-online);background:#3a87451a;border:1px solid #3a874526}.qr-card-status--expired{color:var(--color-text-tertiary);background:#5e5a541f}.qr-card-status--revoked{background:var(--color-danger-ghost);color:var(--color-danger)}.qr-card-share-btn{color:var(--color-primary);background:var(--color-primary-ghost);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);border:none;width:fit-content;margin-top:.25rem;padding:.3rem .65rem;font-size:.75rem;font-weight:500}.qr-card-share-btn:hover{background:var(--color-primary-ghost-hover);color:var(--color-primary-light)}.qr-empty{text-align:center;color:var(--color-text-secondary);padding:3rem 1.5rem;font-size:.9rem;font-weight:300}.qr-empty-icon{opacity:.3;margin-bottom:.75rem;font-size:2.5rem}.qr-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:box-shadow var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);gap:1rem;padding:1rem;animation:.25s both msg-in;display:flex}.qr-card:hover{box-shadow:var(--shadow-sm), var(--shadow-gold);border-color:#2d5a3d33;transform:translateY(-1px)}.qr-card-image{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#f5f1ea;flex-shrink:0;width:72px;height:72px;overflow:hidden}.qr-card-image img{object-fit:contain;filter:none;width:100%;height:100%}.qr-card-info{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.qr-card-visitor{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.qr-card-time{color:var(--color-text-secondary);font-size:.78rem;font-weight:300;line-height:1.4}.qr-card-footer{align-items:center;gap:.5rem;margin-top:auto;display:flex}.qr-status{text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);align-items:center;padding:.15rem .55rem;font-size:.65rem;font-weight:600;display:inline-flex}.qr-status-active{color:var(--color-online);background:#3a87451a;border:1px solid #3a874526}.qr-status-expired{color:var(--color-text-tertiary);background:#5e5a541f}.qr-status-revoked{background:var(--color-danger-ghost);color:var(--color-danger)}.qr-card-scans{color:var(--color-text-tertiary);font-size:.72rem;font-weight:300}.qr-form{padding:1.25rem;animation:.3s both view-in}.qr-form h2{font-family:var(--font-display);color:var(--color-text);margin:0 0 1.25rem;font-size:1.35rem;font-weight:400}.qr-form-field{margin-bottom:1rem}.qr-form-field label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.4rem;font-size:.72rem;font-weight:500;display:block}.qr-form-field input{width:100%;font-size:.95rem;font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);box-sizing:border-box;outline:none;padding:.65rem .85rem}.qr-form-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost)}.qr-form-actions{gap:.75rem;margin-top:1.5rem;display:flex}.qr-form-actions .btn-primary,.qr-form-actions .btn-secondary{flex:1}.btn-secondary{font-size:.9rem;font-weight:500;font-family:var(--font-body);color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);padding:.65rem 1.25rem}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-text-tertiary)}.qr-detail{padding:1.25rem;animation:.3s both view-in}.qr-detail-header{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.qr-detail-header h2{font-family:var(--font-display);flex:1;margin:0;font-size:1.3rem;font-weight:400}.qr-detail-image{border-radius:var(--radius-md);border:1px solid var(--color-border);width:180px;height:180px;box-shadow:var(--shadow-gold);background:#f5f1ea;margin:0 auto 1.25rem;overflow:hidden}.qr-detail-image img{object-fit:contain;filter:none;width:100%;height:100%}.qr-detail-info{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1rem;padding:1rem}.qr-detail-row{justify-content:space-between;padding:.45rem 0;font-size:.88rem;display:flex}.qr-detail-row+.qr-detail-row{border-top:1px solid var(--color-border)}.qr-detail-label{color:var(--color-text-secondary);font-weight:300}.qr-detail-value{color:var(--color-text);font-weight:500}.qr-detail-actions{gap:.75rem;margin-bottom:1.5rem;display:flex}.qr-detail-actions button{flex:1}.btn-share{font-size:.85rem;font-weight:500;font-family:var(--font-body);color:var(--color-primary);background:var(--color-primary-ghost);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);border:1px solid #2d5a3d1f;padding:.6rem 1rem}.btn-share:hover{background:var(--color-primary-ghost-hover)}.btn-danger{font-size:.85rem;font-weight:500;font-family:var(--font-body);color:var(--color-danger);background:var(--color-danger-ghost);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);border:none;padding:.6rem 1rem}.btn-danger:hover{background:#c45f5f29}.scan-history h3{font-family:var(--font-display);color:var(--color-primary);letter-spacing:.02em;margin:0 0 .75rem;font-size:1.05rem;font-weight:400}.scan-history-empty{text-align:center;color:var(--color-text-tertiary);padding:1.5rem;font-size:.82rem;font-weight:300}.scan-item{align-items:center;gap:.75rem;padding:.6rem 0;font-size:.82rem;display:flex}.scan-item+.scan-item{border-top:1px solid var(--color-border)}.scan-outcome{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;display:flex}.scan-outcome-granted{color:var(--color-online);background:#3a87451a}.scan-outcome-denied{background:var(--color-danger-ghost);color:var(--color-danger)}.scan-info{flex:1}.scan-time{color:var(--color-text-tertiary);font-size:.72rem;font-weight:300}.scan-toast{z-index:100;background:var(--color-surface-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border-left:3px solid;border:1px solid var(--color-border);align-items:center;gap:.75rem;min-width:280px;max-width:400px;padding:.75rem 1rem;animation:.3s both notify-in;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.scan-toast-granted{border-left:3px solid var(--color-online)}.scan-toast-denied{border-left:3px solid var(--color-danger)}.scan-toast-icon{flex-shrink:0;font-size:1.25rem}.scan-toast-content{flex:1;min-width:0}.scan-toast-title{color:var(--color-text);font-size:.88rem;font-weight:500}.scan-toast-message{color:var(--color-text-secondary);margin-top:.15rem;font-size:.78rem;font-weight:300}.scan-toast-close{color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1rem;line-height:1}.nav-tabs{border-bottom:1px solid var(--color-border);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0;padding:0 1.25rem;display:flex;overflow-x:auto}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab{font-size:.82rem;font-weight:500;font-family:var(--font-body);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;letter-spacing:.02em;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem .85rem}.nav-tab:hover{color:var(--color-text-secondary)}.nav-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.back-button{color:var(--color-primary);font-size:.88rem;font-weight:500;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;padding:.25rem 0;display:flex}.intercom-view{padding:1rem}.intercom-tabs{border-bottom:1px solid var(--color-border);gap:0;margin-bottom:1rem;display:flex}.intercom-tab{font-family:var(--font-body);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);letter-spacing:.02em;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem 1rem;font-size:.85rem;font-weight:500}.intercom-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.incoming-call{background:var(--color-surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;border:1px solid var(--color-border);padding:1.5rem;animation:.3s slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.incoming-call-icon{background:var(--color-accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 1rem;animation:1.5s infinite ring-pulse;display:flex}@keyframes ring-pulse{0%,to{box-shadow:0 0 #8b691466}50%{box-shadow:0 0 0 16px #8b691400}}.incoming-call h3{font-family:var(--font-display);color:var(--color-text);margin:0 0 .25rem;font-size:1.3rem;font-weight:400}.incoming-call p{color:var(--color-text-secondary);margin:0 0 1.25rem;font-size:.82rem;font-weight:300}.incoming-call-actions{justify-content:center;gap:1rem;display:flex}.btn-answer{border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-family:var(--font-body);cursor:pointer;transition:background var(--transition-fast);letter-spacing:.02em;border:none;padding:.75rem 2rem;font-size:.9rem;font-weight:600}.btn-answer:hover{background:#528a62}.btn-reject{border-radius:var(--radius-full);background:var(--color-danger);color:#fff;font-family:var(--font-body);cursor:pointer;transition:background var(--transition-fast);border:none;padding:.75rem 2rem;font-size:.9rem;font-weight:600}.btn-reject:hover{background:#d06060}.active-call{border-radius:var(--radius-lg);text-align:center;border:1px solid var(--color-border);background:#0a0908;padding:2rem 1.5rem}.active-call h3{font-family:var(--font-display);color:var(--color-text);margin-bottom:.25rem;font-size:1.4rem;font-weight:400}.active-call p{color:var(--color-text-secondary);margin-bottom:1.5rem;font-size:.85rem;font-weight:300}.call-timer{font-size:2rem;font-family:var(--font-display);color:var(--color-primary);letter-spacing:.05em;margin-bottom:2rem;font-weight:300}.call-history-list{padding:0;list-style:none}.call-history-item{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:.85rem;padding:.85rem 0;display:flex}.call-history-item:hover{background:var(--color-surface-hover);border-radius:var(--radius-sm);margin:0 -.5rem;padding-left:.5rem;padding-right:.5rem}.call-direction-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;display:flex}.call-direction-incoming{color:var(--color-accent);background:#8b69141a}.call-direction-outgoing{background:var(--color-primary-ghost);color:var(--color-primary)}.call-direction-missed{background:var(--color-danger-ghost);color:var(--color-danger)}.call-history-info{flex:1;min-width:0}.call-history-name{color:var(--color-text);font-size:.9rem;font-weight:500}.call-history-time{color:var(--color-text-tertiary);font-size:.75rem;font-weight:300}.call-history-duration{color:var(--color-text-secondary);font-size:.78rem;font-weight:400}.unlock-button{background:var(--gold-gradient);color:#fff;border-radius:var(--radius-md);width:100%;font-family:var(--font-body);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);text-transform:uppercase;letter-spacing:.05em;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.85rem;font-size:.9rem;font-weight:600;display:flex;box-shadow:0 2px 12px #2d5a3d33}.unlock-button:hover{transform:translateY(-1px);box-shadow:0 4px 20px #2d5a3d4d}.unlock-button:active{transform:translateY(0)}.unlock-button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.panel-page{background:radial-gradient(ellipse at 30% 20%, #2d5a3d0d 0%, transparent 50%), var(--color-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem;display:flex}.panel-container{text-align:center;width:100%;max-width:400px}.panel-header{margin-bottom:2rem}.panel-header h1{font-family:var(--font-display);color:var(--color-text);letter-spacing:.03em;font-size:2rem;font-weight:400}.panel-header p{color:var(--color-text-secondary);margin-top:.35rem;font-size:.9rem;font-weight:300}.panel-keypad{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}.keypad-btn{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-family:var(--font-display);color:var(--color-text);transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;font-size:1.6rem;font-weight:400;display:flex}.keypad-btn:hover{background:var(--color-surface-hover);border-color:#2d5a3d33}.keypad-btn:active{background:var(--color-surface-active);transform:scale(.95)}.keypad-letters{font-family:var(--font-body);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.15em;margin-top:.15rem;font-size:.6rem}.panel-display{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-display);letter-spacing:.15em;color:var(--color-primary);justify-content:center;align-items:center;min-height:60px;margin-bottom:1rem;padding:1rem;font-size:1.8rem;font-weight:300;display:flex}.panel-call-btn{background:var(--color-accent);color:#fff;border-radius:var(--radius-md);width:100%;font-family:var(--font-body);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);text-transform:uppercase;letter-spacing:.05em;border:none;padding:1rem;font-size:1rem;font-weight:600}.panel-call-btn:hover{background:#528a62;transform:translateY(-1px)}.panel-call-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.panel-scanner{border-top:1px solid var(--color-border);margin-top:1.5rem;padding-top:1.5rem}.panel-scanner-btn{background:var(--color-primary-ghost);color:var(--color-primary);border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;transition:background var(--transition-fast);border:1px solid #2d5a3d26;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500}.panel-scanner-btn:hover{background:var(--color-primary-ghost-hover)}.chat-view{height:calc(100dvh - var(--header-h) - 48px);flex-direction:column;display:flex}.chat-tabs{border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.chat-tab{text-align:center;color:var(--color-text-tertiary);transition:color var(--transition-fast), border-color var(--transition-fast);letter-spacing:.02em;border-bottom:2px solid #0000;flex:1;padding:.7rem;font-size:.82rem;font-weight:500}.chat-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.conversation-list{flex:1;padding:.5rem 0;overflow-y:auto}.conversation-list-empty{color:var(--color-text-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:3rem 2rem;font-size:.88rem;font-weight:300;display:flex}.conversation-item{cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:.75rem;padding:.75rem 1.25rem;display:flex}.conversation-item:hover{background:var(--color-surface-hover)}.conversation-item-active{background:var(--color-primary-ghost)}.conversation-avatar{border-radius:var(--radius-full);background:var(--color-surface-active);width:44px;height:44px;color:var(--color-text-secondary);font-family:var(--font-display);border:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:400;display:flex}.conversation-info{flex:1;min-width:0}.conversation-name{color:var(--color-text);align-items:center;gap:.35rem;font-size:.9rem;font-weight:500;display:flex}.conversation-preview{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:.1rem;font-size:.78rem;font-weight:300;overflow:hidden}.conversation-time{color:var(--color-text-tertiary);flex-shrink:0;align-self:flex-start;margin-top:.15rem;font-size:.68rem;font-weight:300}.conversation-unread{background:var(--color-primary);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.68rem;font-weight:700;display:flex}.chat-message-area{flex-direction:column;flex:1;min-width:0;display:flex}.chat-header{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:.5rem;padding:.65rem 1rem;display:flex}.chat-header h3{font-family:var(--font-display);flex:1;font-size:1.05rem;font-weight:400}.chat-header-back{border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-secondary);transition:background var(--transition-fast);justify-content:center;align-items:center;display:flex}.chat-header-back:hover{background:var(--color-primary-ghost);color:var(--color-primary)}.new-conversation{padding:1.25rem}.new-conversation h3{font-family:var(--font-display);margin-bottom:1rem;font-size:1.2rem;font-weight:400}.new-conversation-field{margin-bottom:1rem}.new-conversation-field label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem;font-size:.72rem;font-weight:500;display:block}.new-conversation-field input,.new-conversation-field textarea,.new-conversation-field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);transition:border-color var(--transition-fast);padding:.65rem .85rem}.new-conversation-field input:focus,.new-conversation-field textarea:focus,.new-conversation-field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.announcement-composer{padding:1.25rem}.announcement-composer h3{font-family:var(--font-display);color:var(--color-primary);margin-bottom:1rem;font-size:1.2rem;font-weight:400}.announcement-composer textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-height:120px;color:var(--color-text);resize:vertical;padding:.85rem;font-size:.9rem;line-height:1.5}.announcement-composer textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.announcement-priority{margin:.75rem 0}.announcement-priority label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem;font-size:.72rem;font-weight:500;display:block}.announcement-priority select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;padding:.6rem .85rem}.door-unlock-section{padding:1.25rem}.door-unlock-section h3{font-family:var(--font-display);color:var(--color-text);margin-bottom:.5rem;font-size:1.15rem;font-weight:400}.door-unlock-section p{color:var(--color-text-secondary);margin-bottom:1rem;font-size:.82rem;font-weight:300}.door-unlock-main-btn{background:var(--gold-gradient);color:#fff;width:120px;height:120px;font-family:var(--font-body);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);text-transform:uppercase;letter-spacing:.06em;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;margin:1.5rem auto;font-size:.85rem;font-weight:600;display:flex;box-shadow:0 4px 20px #2d5a3d40,0 0 40px #2d5a3d14}.door-unlock-main-btn:hover{transform:scale(1.04);box-shadow:0 6px 28px #2d5a3d59,0 0 50px #2d5a3d1f}.door-unlock-main-btn:active{transform:scale(.97)}.door-unlock-main-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:0 4px 16px #2d5a3d1f}.door-unlock-status{text-align:center;color:var(--color-text-secondary);margin-top:.75rem;font-size:.82rem;font-weight:300}.door-unlock-status.success{color:var(--color-accent)}.door-unlock-status.error{color:var(--color-danger)}.door-settings-panel{padding:1.25rem;animation:.3s both view-in}.door-settings-panel h2{font-family:var(--font-display);color:var(--color-text);margin-bottom:1.25rem;font-size:1.35rem;font-weight:400}.door-settings-section{margin-bottom:1.5rem}.door-settings-section h3{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--color-border);margin-bottom:.75rem;padding-bottom:.5rem;font-size:.72rem;font-weight:600}.door-settings-field{margin-bottom:.85rem}.door-settings-field label{color:var(--color-text-secondary);margin-bottom:.3rem;font-size:.82rem;font-weight:500;display:block}.door-settings-field input,.door-settings-field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);transition:border-color var(--transition-fast);padding:.6rem .85rem}.door-settings-field input:focus,.door-settings-field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.door-settings-toggle{justify-content:space-between;align-items:center;padding:.65rem 0;display:flex}.door-settings-toggle-label{color:var(--color-text);font-size:.88rem}.door-settings-toggle-desc{color:var(--color-text-secondary);margin-top:.15rem;font-size:.75rem;font-weight:300}.unlock-log{padding:0 1.25rem 1.25rem}.unlock-log h3{font-family:var(--font-display);color:var(--color-primary);margin-bottom:.75rem;font-size:1.05rem;font-weight:400}.unlock-log-empty{text-align:center;color:var(--color-text-tertiary);padding:1.5rem;font-size:.82rem;font-weight:300}.unlock-log-list{list-style:none}.unlock-log-item{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.6rem 0;font-size:.82rem;display:flex}.unlock-log-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.82rem;display:flex}.unlock-log-icon-success{color:var(--color-online);background:#3a87451a}.unlock-log-icon-fail{background:var(--color-danger-ghost);color:var(--color-danger)}.unlock-log-info{flex:1;min-width:0}.unlock-log-method{color:var(--color-text);font-weight:500}.unlock-log-time{color:var(--color-text-tertiary);font-size:.72rem;font-weight:300}.intercom-settings-overlay{background:var(--color-overlay);z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-base) forwards;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.intercom-settings-modal{background:var(--color-surface-elevated);border-radius:var(--radius-lg);width:90%;max-width:380px;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);padding:1.5rem;animation:.3s slideDown}.intercom-settings-modal h3{font-family:var(--font-display);color:var(--color-text);margin-bottom:1.25rem;font-size:1.15rem;font-weight:400}.intercom-settings-field{margin-bottom:1rem}.intercom-settings-field label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem;font-size:.72rem;font-weight:500;display:block}.intercom-settings-field input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);width:100%;color:var(--color-text);transition:border-color var(--transition-fast);padding:.6rem .85rem}.intercom-settings-field input:focus{border-color:var(--color-primary);outline:none}.intercom-settings-actions{gap:.75rem;margin-top:1.25rem;display:flex}.auth-page{text-align:center;background:radial-gradient(ellipse at 25% 15%, #2d5a3d0f 0%, transparent 50%), radial-gradient(ellipse at 75% 85%, #8b691408 0%, transparent 50%), var(--color-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem 1.5rem;animation:.8s cubic-bezier(.22,1,.36,1) onboarding-in;display:flex}.auth-page-icon{border-radius:var(--radius-xl);background:var(--gold-gradient);color:#fff;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:1.5rem;display:flex;box-shadow:0 8px 32px #2d5a3d33}.auth-page-title{font-family:var(--font-display);letter-spacing:.03em;color:var(--color-text);margin-bottom:.35rem;font-size:2.2rem;font-weight:400}.auth-page-subtitle{color:var(--color-text-secondary);max-width:300px;margin-bottom:2rem;font-size:.88rem;font-weight:300;line-height:1.6}.auth-form{flex-direction:column;gap:1rem;width:100%;max-width:340px;display:flex}.auth-form-field{text-align:left;flex-direction:column;gap:.4rem;display:flex}.auth-form-field label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:500}.auth-form-field input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-base), box-shadow var(--transition-base);padding:.8rem 1rem;font-size:.95rem}.auth-form-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost), var(--shadow-gold);outline:none}.auth-form-field input::placeholder{color:var(--color-text-tertiary)}.auth-form-error{color:var(--color-danger);text-align:center;background:var(--color-danger-ghost);border-radius:var(--radius-sm);padding:.5rem;font-size:.82rem}.auth-form-success{color:var(--color-accent);text-align:center;border-radius:var(--radius-sm);background:#8b691414;padding:.5rem;font-size:.82rem}.auth-links{flex-direction:column;align-items:center;gap:.35rem;display:flex}.auth-link{color:var(--color-primary);transition:color var(--transition-fast);padding:.25rem 0;font-size:.82rem;font-weight:500}.auth-link:hover{color:var(--color-primary-light)}.password-strength{gap:4px;height:3px;margin-top:.35rem;display:flex}.password-strength-bar{background:var(--color-border);transition:background var(--transition-base);border-radius:2px;flex:1}.password-strength-bar.filled-weak{background:var(--color-danger)}.password-strength-bar.filled-fair{background:#d4a34a}.password-strength-bar.filled-good{background:var(--color-primary)}.password-strength-bar.filled-strong{background:var(--color-accent)}.password-strength-label{color:var(--color-text-secondary);margin-top:.25rem;font-size:.7rem;font-weight:400}.profile-overlay{background:var(--color-overlay);z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-base) forwards;position:fixed;inset:0}.profile-panel{background:var(--color-surface);z-index:201;width:100%;max-width:360px;box-shadow:var(--shadow-lg);animation:slideInLeft var(--transition-slow) forwards;border-right:1px solid var(--color-border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.profile-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.profile-header h2{font-family:var(--font-display);letter-spacing:.02em;font-size:1.2rem;font-weight:400}.profile-close{border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-secondary);transition:background var(--transition-fast);justify-content:center;align-items:center;display:flex}.profile-close:hover{background:var(--color-surface-active)}.profile-body{flex:1;padding:1.25rem;overflow-y:auto}.profile-avatar-section{flex-direction:column;align-items:center;margin-bottom:1.5rem;display:flex}.profile-avatar-large{border-radius:var(--radius-full);background:var(--gold-gradient);color:#fff;width:72px;height:72px;font-family:var(--font-display);justify-content:center;align-items:center;margin-bottom:.75rem;font-size:1.6rem;font-weight:400;display:flex;box-shadow:0 4px 20px #2d5a3d33}.profile-name{font-family:var(--font-display);color:var(--color-text);margin-bottom:.15rem;font-size:1.2rem;font-weight:400}.profile-email{color:var(--color-text-secondary);font-size:.8rem;font-weight:300}.profile-section{margin-bottom:1.25rem}.profile-section h3{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--color-border);margin-bottom:.6rem;padding-bottom:.4rem;font-size:.7rem;font-weight:600}.profile-field{margin-bottom:.75rem}.profile-field label{color:var(--color-text-secondary);margin-bottom:.25rem;font-size:.78rem;font-weight:400;display:block}.profile-field-value{color:var(--color-text);font-size:.9rem;font-weight:500}.profile-field input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);width:100%;color:var(--color-text);padding:.55rem .75rem;font-size:.88rem}.profile-field input:focus{border-color:var(--color-primary);outline:none}.profile-footer{border-top:1px solid var(--color-border);padding:1rem 1.25rem}.profile-logout{border-radius:var(--radius-md);width:100%;color:var(--color-danger);background:var(--color-danger-ghost);transition:background var(--transition-fast);text-transform:uppercase;letter-spacing:.04em;padding:.75rem;font-size:.88rem;font-weight:500}.profile-logout:hover{background:#c45f5f29}.resident-directory{padding:1.25rem}.resident-directory h2{font-family:var(--font-display);margin-bottom:1rem;font-size:1.35rem;font-weight:400}.resident-search{margin-bottom:1rem}.resident-search input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);transition:border-color var(--transition-fast);padding:.65rem .85rem;font-size:.9rem}.resident-search input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.resident-search input::placeholder{color:var(--color-text-tertiary)}.resident-list{list-style:none}.resident-item{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.resident-avatar{border-radius:var(--radius-full);background:var(--color-surface-active);width:40px;height:40px;color:var(--color-text-secondary);font-family:var(--font-display);border:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;font-weight:400;display:flex}.resident-info{flex:1;min-width:0}.resident-name{color:var(--color-text);font-size:.9rem;font-weight:500}.resident-unit{color:var(--color-text-secondary);font-size:.78rem;font-weight:300}.resident-role{text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);background:var(--color-primary-ghost);border-radius:var(--radius-sm);padding:.1rem .4rem;font-size:.65rem;font-weight:600}.resident-actions{gap:.35rem;display:flex}.residents-view{padding:0}.residents-view-tabs{border-bottom:1px solid var(--color-border);padding:0 1.25rem;display:flex}.residents-view-tab{color:var(--color-text-tertiary);transition:color var(--transition-fast), border-color var(--transition-fast);letter-spacing:.02em;border-bottom:2px solid #0000;padding:.7rem 1rem;font-size:.82rem;font-weight:500}.residents-view-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.invite-form{padding:1.25rem}.invite-form h3{font-family:var(--font-display);margin-bottom:1rem;font-size:1.15rem;font-weight:400}.user-bar-avatar:active{transform:scale(.93)}.user-bar-account{color:var(--color-primary);letter-spacing:.02em;margin-left:auto;font-size:.78rem;font-weight:500}.client-registration{width:100%;max-width:340px;animation:.3s both view-in}.client-registration h2{font-family:var(--font-display);text-align:center;margin-bottom:.35rem;font-size:1.4rem;font-weight:400}.client-registration p{color:var(--color-text-secondary);text-align:center;margin-bottom:1.5rem;font-size:.82rem;font-weight:300}.client-registration-field{margin-bottom:1rem}.client-registration-field label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.35rem;font-size:.7rem;font-weight:500;display:block}.client-registration-field input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);padding:.75rem 1rem;font-size:.95rem}.client-registration-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.client-dashboard{padding:1.25rem;animation:.3s both view-in}.client-dashboard h2{font-family:var(--font-display);margin-bottom:1rem;font-size:1.35rem;font-weight:400}.client-dashboard-stats{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}.client-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center;padding:1rem}.client-stat-value{font-family:var(--font-display);color:var(--color-primary);font-size:1.8rem;font-weight:400}.client-stat-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-top:.25rem;font-size:.72rem;font-weight:500}.client-section{margin-bottom:1.5rem}.client-section h3{font-family:var(--font-display);color:var(--color-primary);letter-spacing:.02em;margin-bottom:.75rem;font-size:1.05rem;font-weight:400}.client-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:.75rem;padding:1rem}.client-card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.client-card-title{color:var(--color-text);font-size:.92rem;font-weight:500}.client-card-status{text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);padding:.15rem .5rem;font-size:.65rem;font-weight:600}.client-card-status-active{color:var(--color-online);background:#3a87451a}.client-card-status-inactive{color:var(--color-text-tertiary);background:var(--color-surface-active)}.client-card-detail{justify-content:space-between;padding:.3rem 0;font-size:.82rem;display:flex}.client-card-detail-label{color:var(--color-text-secondary);font-weight:300}.client-card-detail-value{color:var(--color-text);font-weight:500}.client-empty{text-align:center;color:var(--color-text-tertiary);padding:2rem 1rem;font-size:.85rem;font-weight:300}.client-form-field{margin-bottom:.85rem}.client-form-field label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.3rem;font-size:.72rem;font-weight:500;display:block}.client-form-field input,.client-form-field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:.6rem .85rem}.client-form-field input:focus,.client-form-field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.subscription-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1rem;padding:1.25rem}.subscription-plan{font-family:var(--font-display);color:var(--color-primary);margin-bottom:.5rem;font-size:1.15rem;font-weight:400}.subscription-price{font-family:var(--font-display);color:var(--color-text);font-size:1.5rem;font-weight:400}.subscription-period{color:var(--color-text-secondary);font-size:.78rem;font-weight:300}.payment-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem}.payment-form h3{font-family:var(--font-display);color:var(--color-primary);margin-bottom:1rem;font-size:1rem;font-weight:400}.billing-panel{padding:1.25rem}.billing-panel h3{font-family:var(--font-display);color:var(--color-text);margin-bottom:1rem;font-size:1.15rem;font-weight:400}.billing-history{list-style:none}.billing-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.65rem 0;font-size:.85rem;display:flex}.billing-date{color:var(--color-text-secondary);font-weight:300}.billing-amount{color:var(--color-text);font-weight:500;font-family:var(--font-display);font-size:.95rem}.billing-status-paid{color:var(--color-online);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.billing-status-pending{color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:600}.building-manager{padding:1.25rem}.building-manager h3{font-family:var(--font-display);margin-bottom:1rem;font-size:1.15rem;font-weight:400}.admin-manager{padding:1.25rem}.admin-manager h3{font-family:var(--font-display);margin-bottom:1rem;font-size:1.15rem;font-weight:400}.client-view-overlay{background:var(--color-overlay);z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-base) forwards;position:fixed;inset:0}.client-view{background:var(--color-surface);z-index:201;width:100%;max-width:420px;box-shadow:var(--shadow-lg);animation:slideInRight var(--transition-slow) forwards;border-left:1px solid var(--color-border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.client-view-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.client-view-header h2{font-family:var(--font-display);letter-spacing:.02em;font-size:1.2rem;font-weight:400}.client-view-close{border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-secondary);transition:background var(--transition-fast);justify-content:center;align-items:center;display:flex}.client-view-close:hover{background:var(--color-surface-active)}.client-view-body{flex:1;overflow-y:auto}.client-view-tabs{border-bottom:1px solid var(--color-border);padding:0 1.25rem;display:flex}.client-view-tab{color:var(--color-text-tertiary);transition:color var(--transition-fast), border-color var(--transition-fast);letter-spacing:.02em;border-bottom:2px solid #0000;padding:.7rem .85rem;font-size:.78rem;font-weight:500}.client-view-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.user-bar-account:hover{color:var(--color-primary-light)}.communication-view{height:calc(100dvh - var(--header-h) - 48px);flex-direction:column;display:flex}.communication-tabs{border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.communication-tab{text-align:center;color:var(--color-text-tertiary);transition:color var(--transition-fast), border-color var(--transition-fast);letter-spacing:.02em;border-bottom:2px solid #0000;flex:1;padding:.7rem;font-size:.82rem;font-weight:500}.communication-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.communication-body,.chat-sub-view{flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-sub-header{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.chat-sub-header h3{font-family:var(--font-display);flex:1;font-size:1rem;font-weight:400}.chat-sub-new-btn{color:var(--color-primary);border-radius:var(--radius-full);transition:background var(--transition-fast);letter-spacing:.02em;padding:.35rem .7rem;font-size:.78rem;font-weight:500}.chat-sub-new-btn:hover{background:var(--color-primary-ghost)}.calling-view{flex-direction:column;flex:1;display:flex}.calling-header{align-items:center;gap:.5rem;padding:1rem 1.25rem;display:flex}.calling-header h3{font-family:var(--font-display);flex:1;font-size:1.15rem;font-weight:400}.calling-search{margin:0 1.25rem .75rem}.calling-search input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);padding:.6rem .85rem;font-size:.88rem}.calling-search input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.calling-search input::placeholder{color:var(--color-text-tertiary)}.contact-list{flex:1;padding:0 .5rem;overflow-y:auto}.contact-list-empty{text-align:center;color:var(--color-text-tertiary);padding:2rem 1.25rem;font-size:.85rem;font-weight:300}.contact-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:.75rem;padding:.65rem .75rem;display:flex}.contact-item:hover{background:var(--color-surface-hover)}.contact-item-active{background:var(--color-primary-ghost)}.contact-avatar{border-radius:var(--radius-full);background:var(--color-surface-active);width:44px;height:44px;color:var(--color-text-secondary);font-family:var(--font-display);border:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:400;display:flex;position:relative}.contact-info{flex:1;min-width:0}.contact-name{color:var(--color-text);font-size:.9rem;font-weight:500}.contact-unit{color:var(--color-text-secondary);font-size:.75rem;font-weight:300}.presence-dot{border:2px solid var(--color-surface);border-radius:50%;width:12px;height:12px;position:absolute;bottom:0;right:0}.presence-dot-online{background:var(--color-online);box-shadow:0 0 6px #3a874566}.presence-dot-offline{background:var(--color-text-tertiary)}.contact-actions-overlay{background:var(--color-overlay);z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-base) forwards;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.contact-actions-panel{width:100%;max-width:var(--max-w);background:var(--color-surface-elevated);border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:slide-up var(--transition-slow) forwards;border:1px solid var(--color-border);border-bottom:none;padding:1.5rem 1.25rem}.contact-actions-header{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.contact-actions-avatar{border-radius:var(--radius-full);background:var(--color-surface-active);width:48px;height:48px;color:var(--color-text-secondary);font-family:var(--font-display);border:1px solid var(--color-border);justify-content:center;align-items:center;font-size:1.15rem;font-weight:400;display:flex}.contact-actions-name{font-size:1rem;font-weight:500}.contact-actions-unit{color:var(--color-text-secondary);font-size:.78rem;font-weight:300}.contact-actions-buttons{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.contact-action-btn{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);letter-spacing:.01em;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;font-size:.78rem;font-weight:500;display:flex}.contact-action-btn:hover{background:var(--color-surface-hover);border-color:#2d5a3d26;transform:translateY(-1px)}.contact-action-btn svg{color:var(--color-primary)}.contact-actions-close{border-radius:var(--radius-md);width:100%;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);transition:background var(--transition-fast);margin-top:1rem;padding:.75rem;font-size:.88rem;font-weight:500}.contact-actions-close:hover{background:var(--color-surface-hover)}.incoming-call-overlay{z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn var(--transition-base) forwards;background:#000000d9;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.incoming-call-content{text-align:center;animation:.5s cubic-bezier(.22,1,.36,1) forwards slideDown}.incoming-call-avatar-large{background:var(--gold-gradient);color:#fff;width:96px;height:96px;font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;font-size:2.2rem;font-weight:400;animation:2s infinite ring-pulse;display:flex;box-shadow:0 0 40px #2d5a3d33}.incoming-call-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.5rem;font-size:.82rem;font-weight:400}.incoming-call-name{font-family:var(--font-display);color:var(--color-text);margin-bottom:.25rem;font-size:1.8rem;font-weight:400}.incoming-call-unit{color:var(--color-text-secondary);margin-bottom:2.5rem;font-size:.88rem;font-weight:300}.incoming-call-buttons{justify-content:center;gap:2.5rem;display:flex}.incoming-call-btn{text-transform:uppercase;letter-spacing:.06em;color:#fff;width:64px;height:64px;transition:transform var(--transition-fast), box-shadow var(--transition-fast);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:.65rem;font-weight:600;display:flex}.incoming-call-btn:hover{transform:scale(1.08)}.incoming-call-btn:active{transform:scale(.95)}.incoming-call-btn-accept{background:var(--color-accent);box-shadow:0 4px 20px #8b691459}.incoming-call-btn-decline{background:var(--color-danger);box-shadow:0 4px 20px #c45f5f59}.active-call-overlay{z-index:300;background:#0a0908;flex-direction:column;display:flex;position:fixed;inset:0}.active-call-header{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.active-call-info{flex:1}.active-call-name{font-family:var(--font-display);color:var(--color-text);font-size:1.1rem;font-weight:400}.active-call-status{color:var(--color-text-secondary);font-size:.78rem;font-weight:300}.active-call-timer{font-family:var(--font-display);color:var(--color-primary);letter-spacing:.05em;font-size:1rem;font-weight:300}.active-call-body{flex:1;justify-content:center;align-items:center;display:flex}.active-call-avatar{background:var(--gold-gradient);color:#fff;width:120px;height:120px;font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:2.8rem;font-weight:400;display:flex;box-shadow:0 0 60px #2d5a3d26}.active-call-controls{border-top:1px solid var(--color-border);justify-content:center;align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.call-control-btn{width:56px;height:56px;color:var(--color-text);transition:background var(--transition-fast), transform var(--transition-fast);letter-spacing:.02em;background:#ffffff14;border:1px solid #ffffff0f;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;font-size:.6rem;font-weight:500;display:flex}.call-control-btn:hover{background:#ffffff24;transform:scale(1.06)}.call-control-btn.active{color:var(--color-primary);background:#2d5a3d33;border-color:#2d5a3d26}.call-control-btn-end{background:var(--color-danger);border-color:#0000;width:64px;height:64px}.call-control-btn-end:hover{background:#d06060}.voice-only-banner{color:var(--color-primary);text-align:center;background:#2d5a3d0f;border-bottom:1px solid #2d5a3d1a;padding:.5rem 1rem;font-size:.78rem;font-weight:400}.call-history-section{padding:1rem 1.25rem}.call-history-section h3{font-family:var(--font-display);color:var(--color-primary);margin-bottom:.75rem;font-size:1.05rem;font-weight:400}.call-history-empty{text-align:center;color:var(--color-text-tertiary);padding:2rem 1rem;font-size:.85rem;font-weight:300}.call-log-item{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.call-log-avatar{border-radius:var(--radius-full);background:var(--color-surface-active);width:38px;height:38px;color:var(--color-text-secondary);font-family:var(--font-display);border:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:400;display:flex}.call-log-info{flex:1;min-width:0}.call-log-name{color:var(--color-text);font-size:.88rem;font-weight:500}.call-log-meta{color:var(--color-text-secondary);align-items:center;gap:.35rem;font-size:.72rem;font-weight:300;display:flex}.call-log-type{text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:600}.call-log-type-incoming{color:var(--color-accent)}.call-log-type-outgoing{color:var(--color-primary)}.call-log-type-missed{color:var(--color-danger)}.call-log-duration{color:var(--color-text-secondary);font-size:.78rem;font-weight:300}.call-log-callback{border-radius:var(--radius-full);width:36px;height:36px;color:var(--color-primary);transition:background var(--transition-fast);justify-content:center;align-items:center;display:flex}.call-log-callback:hover{background:var(--color-primary-ghost)}.missed-call-badge{border-radius:var(--radius-full);background:var(--color-danger);color:#fff;vertical-align:middle;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:.35rem;padding:0 4px;font-size:.62rem;font-weight:700;display:inline-flex}.lifecycle-timeline{padding-left:1.5rem;position:relative}.lifecycle-timeline:before{content:"";background:var(--color-border);width:1px;position:absolute;top:0;bottom:0;left:.5rem}.lifecycle-event{margin-bottom:.5rem;padding:.5rem 0;position:relative}.lifecycle-event:before{content:"";background:var(--color-primary);border:2px solid var(--color-bg);border-radius:50%;width:8px;height:8px;position:absolute;top:.75rem;left:-1.25rem}.lifecycle-event-date{color:var(--color-text-tertiary);font-size:.7rem;font-weight:300}.lifecycle-event-action{color:var(--color-text);font-size:.85rem;font-weight:500}.lifecycle-event-detail{color:var(--color-text-secondary);font-size:.78rem;font-weight:300}.activity-log-list{list-style:none}.activity-log-item{border-bottom:1px solid var(--color-border);gap:.75rem;padding:.6rem 0;font-size:.82rem;display:flex}.activity-log-time{color:var(--color-text-tertiary);flex-shrink:0;width:60px;font-size:.7rem;font-weight:300}.activity-log-action{color:var(--color-text);flex:1}.activity-log-actor{color:var(--color-primary);font-weight:500}.activity-log-empty{text-align:center;color:var(--color-text-tertiary);padding:2rem 1rem;font-size:.85rem;font-weight:300}.admin-building-list{list-style:none}.admin-building-item{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.admin-building-icon{border-radius:var(--radius-sm);background:var(--color-primary-ghost);width:36px;height:36px;color:var(--color-primary);border:1px solid #2d5a3d1f;flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-building-info{flex:1}.admin-building-name{color:var(--color-text);font-size:.9rem;font-weight:500}.admin-building-address{color:var(--color-text-secondary);font-size:.75rem;font-weight:300}.bottom-nav{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0);display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0000004d}.bottom-nav-item{color:var(--color-text-tertiary);transition:color var(--transition-fast);flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 4px 6px;font-size:0;display:flex}.bottom-nav-item-active{color:var(--color-primary)}.bottom-nav-icon{justify-content:center;align-items:center;width:28px;height:28px;display:flex}.bottom-nav-label{white-space:nowrap;text-overflow:ellipsis;letter-spacing:.02em;max-width:80px;font-size:.62rem;font-weight:500;line-height:1;overflow:hidden}.notification-bell{border-radius:var(--radius-full);width:36px;height:36px;color:var(--color-text-secondary);transition:background var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:inline-flex;position:relative}.notification-bell:hover{background:var(--color-primary-ghost);color:var(--color-primary)}.notification-bell-badge{border-radius:var(--radius-full);background:var(--color-danger);color:#fff;border:2px solid var(--color-surface);justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.62rem;font-weight:700;line-height:1;display:flex;position:absolute;top:2px;right:0}.notification-center-overlay{background:var(--color-overlay);z-index:200;animation:fadeIn var(--transition-base) forwards;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:fixed;inset:0}.notification-center{background:var(--color-surface);z-index:201;width:100%;max-width:400px;box-shadow:var(--shadow-lg);animation:slideInRight var(--transition-slow) forwards;border-left:1px solid var(--color-border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.notification-center-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.notification-center-title{font-family:var(--font-display);color:var(--color-text);letter-spacing:.02em;font-size:1.2rem;font-weight:400}.notification-center-actions{align-items:center;gap:.5rem;display:flex}.notification-center-mark-all{color:var(--color-primary);letter-spacing:.01em;padding:4px 8px;font-size:.78rem;font-weight:500}.notification-center-close{border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}.notification-center-close:hover{background:var(--color-surface-active)}.notification-center-body{flex:1;padding:.5rem 0;overflow-y:auto}.notification-center-loading,.notification-center-error,.notification-center-empty{text-align:center;color:var(--color-text-tertiary);padding:2rem 1.25rem;font-size:.88rem;font-weight:300}.notification-center-error{color:var(--color-danger)}.notification-group-date{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:.5rem 1.25rem;font-size:.68rem;font-weight:600}.notification-item{text-align:left;width:100%;transition:background var(--transition-fast);align-items:flex-start;gap:.75rem;padding:.75rem 1.25rem;display:flex}.notification-item:hover{background:var(--color-surface-hover)}.notification-item-unread{background:var(--color-primary-ghost)}.notification-item-dot{border-radius:var(--radius-full);background:var(--color-primary);flex-shrink:0;width:8px;height:8px;margin-top:6px;box-shadow:0 0 6px #2d5a3d4d}.notification-item-content{flex:1;min-width:0}.notification-item-title{color:var(--color-text);font-size:.88rem;font-weight:500;line-height:1.3}.notification-item-body{color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:.78rem;font-weight:300;line-height:1.4;display:-webkit-box;overflow:hidden}.notification-item-time{color:var(--color-text-tertiary);flex-shrink:0;margin-top:2px;font-size:.68rem;font-weight:300}.notification-prefs{padding:1.25rem}.notification-prefs-title{font-family:var(--font-display);color:var(--color-text);letter-spacing:.02em;margin-bottom:1rem;font-size:1.1rem;font-weight:400}.notification-prefs-loading,.notification-prefs-error{text-align:center;color:var(--color-text-tertiary);padding:1.5rem;font-size:.88rem;font-weight:300}.notification-prefs-error{color:var(--color-danger)}.notification-prefs-list{flex-direction:column;gap:0;display:flex}.notification-prefs-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.85rem 0;display:flex}.notification-prefs-item:last-child{border-bottom:none}.notification-prefs-label{color:var(--color-text);font-size:.88rem;font-weight:400}.toggle-switch{background:var(--color-border);width:48px;height:28px;transition:background var(--transition-base);border-radius:14px;flex-shrink:0;padding:0;position:relative}.toggle-switch-on{background:var(--color-primary)}.toggle-switch-thumb{border-radius:var(--radius-full);background:var(--color-text);width:24px;height:24px;transition:transform var(--transition-base);position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #0000004d}.toggle-switch-on .toggle-switch-thumb{background:#0f0e0c;transform:translate(20px)}.toggle-switch:disabled{opacity:.4;cursor:not-allowed}.offline-indicator{top:var(--header-h);z-index:150;color:#e8a0a0;background:#c45f5f1f;border-bottom:1px solid #c45f5f26;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.78rem;font-weight:500;display:flex;position:fixed;left:0;right:0}.version-check-banner{top:var(--header-h);z-index:140;color:var(--color-primary-light);background:#2d5a3d14;border-bottom:1px solid #2d5a3d26;justify-content:space-between;align-items:center;padding:.5rem 1rem;font-size:.78rem;font-weight:500;display:flex;position:fixed;left:0;right:0}.version-check-banner-text{flex:1}.version-check-banner-actions{align-items:center;gap:.5rem;display:flex}.version-check-banner-update{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;text-transform:uppercase;letter-spacing:.04em;padding:4px 12px;font-size:.72rem;font-weight:600}.version-check-banner-update:hover{background:var(--color-primary-light)}.version-check-banner-dismiss{border-radius:var(--radius-full);width:24px;height:24px;color:var(--color-primary);justify-content:center;align-items:center;display:flex}.version-check-banner-dismiss:hover{background:var(--color-primary-ghost)}.version-check-overlay{z-index:9000;background:var(--color-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.version-check-overlay-content{background:var(--color-surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;width:90%;max-width:360px;color:var(--color-text);border:1px solid var(--color-border);flex-direction:column;align-items:center;gap:1rem;padding:2.5rem 2rem;display:flex}.version-check-overlay-title{font-family:var(--font-display);letter-spacing:.02em;font-size:1.4rem;font-weight:400}.version-check-overlay-message{color:var(--color-text-secondary);font-size:.88rem;font-weight:300;line-height:1.5}.version-check-overlay-btn{border-radius:var(--radius-md);background:var(--gold-gradient);color:#fff;transition:transform var(--transition-fast), box-shadow var(--transition-fast);text-transform:uppercase;letter-spacing:.04em;margin-top:.5rem;padding:.75rem 2rem;font-size:.9rem;font-weight:600}.version-check-overlay-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #2d5a3d4d}@media (max-width:768px){.bottom-nav{display:flex}.nav-tabs{display:none}.app-shell{padding-bottom:72px}}.geolocation-gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:2rem;display:flex}.geolocation-gate--checking{color:var(--color-text-secondary);font-family:var(--font-body);font-size:1.1rem}.geolocation-gate--error{color:var(--color-danger)}.geolocation-gate-message{font-family:var(--font-body);max-width:320px;margin-bottom:1.5rem;font-size:1.1rem;line-height:1.5}.geolocation-gate-retry{font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:.75rem 1.5rem;font-size:.95rem;transition:background .15s}.geolocation-gate-retry:hover{background:var(--color-surface-hover)}.building-qr-display{padding:1rem 0}.building-qr-tabs{border-bottom:1px solid var(--color-border);gap:0;margin-bottom:1.5rem;display:flex}.building-qr-tab{font-family:var(--font-body);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem 1rem;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s}.building-qr-tab:hover{color:var(--color-text)}.building-qr-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.building-qr-content{flex-direction:column;align-items:center;gap:1rem;display:flex}.building-qr-image{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:#fff;width:220px;height:220px;padding:.5rem}.building-qr-url{font-family:var(--font-body);color:var(--color-text-tertiary);word-break:break-all;text-align:center;max-width:300px;font-size:.8rem}.building-qr-actions{gap:.75rem;margin-top:.5rem;display:flex}.building-qr-btn{font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:.6rem 1.25rem;font-size:.9rem;transition:background .15s}.building-qr-btn:hover{background:var(--color-surface-hover)}.building-qr-btn--share{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.building-qr-btn--share:hover{background:var(--color-primary-light)}.location-config-form{border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-surface);margin-top:2rem;padding:1.5rem}.location-config-title{font-family:var(--font-display);color:var(--color-text);margin:0 0 1rem;font-size:1.2rem;font-weight:500}.location-config-detect{border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-primary-ghost);width:100%;color:var(--color-primary);font-family:var(--font-body);cursor:pointer;margin-bottom:1rem;padding:.75rem;font-size:.9rem;font-weight:500;transition:background .15s}.location-config-detect:hover{background:var(--color-primary-ghost-hover)}.location-config-fields{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.location-config-field{flex-direction:column;gap:.25rem;display:flex}.location-config-field span{font-family:var(--font-body);color:var(--color-text-secondary);font-size:.85rem}.location-config-field input{border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);padding:.6rem .75rem;font-size:.95rem}.location-config-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-ghost);outline:none}.location-config-error{color:var(--color-danger);font-family:var(--font-body);margin-bottom:.75rem;font-size:.85rem}.location-config-success{color:var(--color-online);font-family:var(--font-body);margin-bottom:.75rem;font-size:.85rem}.location-config-save{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;width:100%;font-family:var(--font-body);cursor:pointer;border:none;padding:.75rem;font-size:.95rem;font-weight:500;transition:background .15s}.location-config-save:hover{background:var(--color-primary-light)}.location-config-save:disabled{opacity:.6;cursor:not-allowed}.my-building-view{padding:1.5rem}.my-building-title{font-family:var(--font-display);color:var(--color-text);margin:0 0 1rem;font-size:1.5rem;font-weight:500}.my-building-error{color:var(--color-danger);font-family:var(--font-body);text-align:center;padding:2rem 1rem;font-size:.95rem}.panel-kiosk-building-name{font-family:var(--font-body);color:#ffffffb3;margin:.25rem 0 0;font-size:.9rem}@keyframes admin-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes admin-pulse{0%,to{opacity:.4}50%{opacity:1}}.admin-top-bar{background:var(--color-primary-dark);color:#fff;z-index:50;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.admin-top-bar-brand{align-items:center;gap:.6rem;display:flex}.admin-top-bar-icon{opacity:.7}.admin-top-bar-title{font-family:var(--font-display);letter-spacing:.01em;font-size:1.05rem;font-weight:500}.admin-top-bar-divider{background:#fff3;width:1px;height:16px}.admin-top-bar-subtitle{text-transform:uppercase;letter-spacing:.12em;opacity:.6;font-size:.72rem;font-weight:400}.admin-top-bar-user{align-items:center;gap:.6rem;display:flex}.admin-top-bar-name{opacity:.8;letter-spacing:.01em;font-size:.78rem;font-weight:400}.admin-top-bar-avatar{border-radius:var(--radius-full);color:#fff;width:32px;height:32px;font-size:.75rem;font-weight:600;font-family:var(--font-display);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);background:#ffffff26;border:1.5px solid #ffffff40;justify-content:center;align-items:center;display:flex}.admin-top-bar-avatar:hover{background:#ffffff40;border-color:#fff6;transform:scale(1.08)}.admin-user-menu-wrap{position:relative}@keyframes admin-dropdown-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.admin-user-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);z-index:1000;transform-origin:100% 0;width:260px;animation:.18s cubic-bezier(.16,1,.3,1) admin-dropdown-in;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 12px 40px #2c282426,0 2px 8px #2c282414}.admin-user-dropdown-header{background:var(--color-bg-warm);align-items:center;gap:.75rem;padding:1rem 1.1rem;display:flex}.admin-user-dropdown-avatar{border-radius:var(--radius-full);background:var(--color-primary);color:#fff;width:38px;min-width:38px;height:38px;font-size:.85rem;font-weight:600;font-family:var(--font-display);justify-content:center;align-items:center;display:flex}.admin-user-dropdown-identity{flex-direction:column;gap:.15rem;min-width:0;display:flex}.admin-user-dropdown-name{font-family:var(--font-body);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.admin-user-dropdown-email{font-family:var(--font-body);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.admin-user-dropdown-divider{background:var(--color-border-light);height:1px}.admin-user-dropdown-item{width:100%;font-family:var(--font-body);color:var(--color-danger);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;align-items:center;gap:.6rem;padding:.7rem 1.1rem;font-size:.8rem;display:flex}.admin-user-dropdown-item:hover{background:var(--color-danger-ghost)}.admin-user-dropdown-item svg{opacity:.7}.admin-page{padding:1.5rem 3rem;animation:.4s both admin-fade-in}.admin-list-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;display:flex}.admin-list-title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:1.6rem;font-weight:400;line-height:1.2}.admin-list-subtitle{color:var(--color-text-tertiary);margin:.15rem 0 0;font-size:.78rem;font-weight:300}.admin-btn-create{font-size:.78rem;font-weight:500;font-family:var(--font-body);color:#fff;background:var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);letter-spacing:.02em;border:none;align-items:center;gap:.4rem;padding:.55rem 1rem;display:inline-flex;box-shadow:0 2px 8px #2d5a3d33}.admin-btn-create:hover{background:var(--color-primary-light);transform:translateY(-1px);box-shadow:0 4px 16px #2d5a3d40}.admin-btn-create:active{transform:translateY(0)}.admin-list-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.admin-search-wrap{flex:1;min-width:180px;position:relative}.admin-search-icon{color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.admin-search-input{padding-left:2.25rem!important}.admin-input{width:100%;font-size:.82rem;font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.55rem .85rem}.admin-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.admin-input::placeholder{color:var(--color-text-tertiary);font-weight:300}.admin-select{font-size:.82rem;font-family:var(--font-body);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;appearance:none;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B6560' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;padding:.55rem 2rem .55rem .85rem}.admin-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ghost);outline:none}.admin-card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem;display:grid}.admin-client-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-base), transform var(--transition-fast);padding:1rem 1.15rem;animation:.35s both admin-fade-in}.admin-client-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 20px #2d5a3d14}.admin-card-top{align-items:center;gap:.65rem;margin-bottom:.85rem;display:flex}.admin-card-avatar{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);color:#fff;width:38px;height:38px;font-family:var(--font-display);flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:500;display:flex}.admin-card-identity{flex:1;min-width:0}.admin-card-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:500;overflow:hidden}.admin-card-email{color:var(--color-text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:300;overflow:hidden}.admin-status-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.admin-status-active{background:var(--color-online)}.admin-status-suspended{background:var(--color-accent)}.admin-status-cancelled{background:var(--color-danger)}.admin-status-deactivated{background:var(--color-offline)}.admin-card-stats{border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);align-items:center;gap:.85rem;margin-bottom:.65rem;padding:.6rem 0;display:flex}.admin-card-stat{flex-direction:column;align-items:center;gap:.1rem;display:flex}.admin-card-stat-value{color:var(--color-text);font-size:1rem;font-weight:600;font-family:var(--font-display)}.admin-card-stat-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-size:.62rem;font-weight:400}.admin-card-footer{justify-content:space-between;align-items:center;display:flex}.admin-card-date{color:var(--color-text-tertiary);font-size:.68rem;font-weight:300}.admin-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.admin-table{border-collapse:collapse;width:100%;font-size:.84rem}.admin-table thead{background:var(--color-bg-warm)}.admin-table th{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;text-align:left;border-bottom:1px solid var(--color-border);padding:.65rem 1rem;font-size:.68rem;font-weight:600}.admin-th-num,.admin-td-num{text-align:center}.admin-table-row{cursor:pointer;transition:background var(--transition-fast)}.admin-table-row:hover{background:var(--color-surface-hover)}.admin-table-row td{border-bottom:1px solid var(--color-border-light);vertical-align:middle;padding:.7rem 1rem}.admin-table-row:last-child td{border-bottom:none}.admin-table-contact{align-items:center;gap:.65rem;display:flex}.admin-table-name{color:var(--color-text);font-weight:500;line-height:1.3}.admin-table-email{color:var(--color-text-tertiary);font-size:.72rem;font-weight:300}.admin-td-num{font-variant-numeric:tabular-nums;color:var(--color-text);font-weight:500}.admin-td-date{color:var(--color-text-secondary);white-space:nowrap;font-size:.78rem;font-weight:300}.admin-card-grid{display:none}.admin-table-wrap{display:block}.admin-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);white-space:nowrap;padding:.15rem .5rem;font-size:.62rem;font-weight:600}.admin-badge-active{color:var(--color-online);background:#3a874514}.admin-badge-suspended{color:var(--color-accent);background:#8b691414}.admin-badge-cancelled{color:var(--color-danger);background:var(--color-danger-ghost)}.admin-badge-type-individual{color:var(--color-text-secondary);background:var(--color-surface-hover)}.admin-badge-type-hoa{color:var(--color-primary);background:var(--color-primary-ghost)}.admin-loading-text{color:var(--color-text-tertiary);justify-content:center;align-items:center;gap:.6rem;padding:3rem 1rem;font-size:.85rem;font-weight:300;display:flex}.admin-loading-spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.admin-empty-state{color:var(--color-text-tertiary);flex-direction:column;align-items:center;gap:.75rem;padding:4rem 1rem;font-size:.88rem;font-weight:300;display:flex}.admin-empty-text{text-align:center;color:var(--color-text-tertiary);padding:2rem 1rem;font-size:.85rem;font-weight:300}.admin-pagination{justify-content:center;align-items:center;gap:1rem;padding:1.25rem 0 .5rem;display:flex}.admin-pagination-btn{font-size:.78rem;font-weight:400;font-family:var(--font-body);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;padding:.4rem .85rem}.admin-pagination-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.admin-pagination-btn:disabled{opacity:.35;cursor:default}.admin-pagination-info{color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:400}.admin-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;animation:.35s both admin-fade-in}.admin-form-title{font-family:var(--font-display);color:var(--color-text);margin:0 0 1.25rem;font-size:1.35rem;font-weight:400}.admin-form-group{margin-bottom:1rem}.admin-label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem;font-size:.7rem;font-weight:500;display:block}.admin-textarea{resize:vertical;min-height:4.5rem}.admin-type-selector{gap:.5rem;display:flex}.admin-type-btn{font-size:.82rem;font-weight:400;font-family:var(--font-body);color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);flex:1;padding:.6rem .85rem}.admin-type-btn-active{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-ghost);font-weight:500}.admin-form-actions{border-top:1px solid var(--color-border-light);justify-content:flex-end;gap:.65rem;margin-top:1.25rem;padding-top:1rem;display:flex}.admin-error{color:var(--color-danger);background:var(--color-danger-ghost);border-radius:var(--radius-sm);margin:.5rem 0;padding:.5rem .75rem;font-size:.82rem;font-weight:400}.admin-client-detail{animation:.35s both admin-fade-in}.admin-detail-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.admin-detail-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:.85rem;padding:1.15rem 1.25rem}.admin-section-title{color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--color-border-light);margin:0 0 .85rem;padding-bottom:.5rem;font-size:.68rem;font-weight:600}.admin-info-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.admin-info-item{flex-direction:column;gap:.15rem;display:flex}.admin-info-full{grid-column:1/-1}.admin-info-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:400}.admin-info-value{color:var(--color-text);font-size:.88rem;font-weight:400}.admin-billing-list{flex-direction:column;gap:.5rem;display:flex}.admin-billing-item{border-bottom:1px solid var(--color-border-light);align-items:center;gap:.75rem;padding:.5rem 0;font-size:.82rem;display:flex}.admin-billing-item:last-child{border-bottom:none}.admin-billing-date{color:var(--color-text-tertiary);flex-shrink:0;width:75px;font-size:.72rem;font-weight:300}.admin-billing-desc{color:var(--color-text);flex:1;font-weight:400}.admin-billing-amount{color:var(--color-text);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:500}@media (max-width:768px){.admin-top-bar{padding:.6rem 1rem}.admin-top-bar-title,.admin-top-bar-divider{display:none}.admin-page{padding:1rem}.admin-table-wrap{display:none}.admin-card-grid{grid-template-columns:1fr;display:grid}.admin-list-header{flex-direction:column;gap:.75rem}.admin-btn-create{justify-content:center;width:100%}.admin-list-filters{flex-direction:column}.admin-info-grid{grid-template-columns:1fr}}.admin-modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--color-surface,#fff);border-radius:.75rem;width:90%;max-width:28rem;padding:1.5rem;box-shadow:0 8px 32px #0003}.admin-modal-title{margin:0 0 .75rem;font-size:1.1rem}
