*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;padding:1rem 0;background:silver;min-height:100vh}.app{max-width:100%}.app-header{width:100%;background:#fff;box-shadow:0 1px #00000014}.app-header-inner{max-width:720px;margin:0 auto;padding:1rem}.app-header-inner h1{margin:0 0 .5rem}.app-header-inner nav{margin:0}.app-body{max-width:720px;margin:0 auto;padding:1rem}.app-body:has(.admin-contacts-list-page){max-width:1200px}nav{margin:.5rem 0}nav a{margin-right:1rem}nav .nav-logout{background:none;border:none;color:#c62828;cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.upload-page .instruction{margin:1rem 0;padding:1rem;background:#f5f5f5;border-radius:6px}.upload-page form{margin:1rem 0}.upload-page label{display:block;margin-bottom:.25rem}.upload-page input[type=file]{margin:.5rem 0}.upload-page .help{display:block;font-size:.9rem;color:#666}.structure-error{margin:1rem 0;padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:6px}.columns-compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem}.columns-compare ul{margin:0;padding-left:1.25rem}.import-report{margin:1rem 0;padding:1rem;background:#d4edda;border-radius:6px}.import-error{margin:1rem 0;padding:1rem;background:#f8d7da;border-radius:6px}.premises-page .cascade-filters label{display:block;margin:.75rem 0}.premises-page select{margin-left:.5rem;min-width:12rem}.premises-page .empty-message{color:#666}.premises-page .selected-premise{margin-top:1rem;padding:1rem;background:#e8f5e9;border-radius:6px}.form-page .premise-display{font-weight:600}.form-page label{display:block;margin:.5rem 0}.form-page fieldset{margin:1rem 0}.form-page .field-error{display:block;color:#c62828;font-size:.9rem}.form-page .form-message.success{color:#2e7d32}.form-page .form-message.error{color:#c62828}.form-page .turnstile-wrap,.login-page{margin:1rem 0}.login-page .login-error{color:#c62828}.login-page .login-form{margin:1rem 0;max-width:20rem}.login-page .login-form label{display:block;margin-bottom:.5rem}.login-page .login-form input{display:block;width:100%;margin-top:.25rem;padding:.4rem .5rem}.login-page .login-password-btn{margin-top:.5rem;padding:.5rem 1rem;font-size:1rem;cursor:pointer}.login-page .login-separator{margin:1rem 0 .5rem;color:#666}.login-page .login-telegram-btn{margin-top:.5rem;padding:.5rem 1rem;font-size:1rem;cursor:pointer}.login-page .link-style{background:none;border:none;color:#056;cursor:pointer;text-decoration:underline;font-size:.95rem;padding:0}.auth-callback-page{margin:1rem 0}.auth-callback-page .auth-error{color:#c62828;margin-bottom:.5rem}.change-password-page{margin:1rem 0;max-width:24rem}.change-password-page label{display:block;margin-bottom:.5rem}.change-password-page input{display:block;width:100%;margin-top:.25rem;padding:.4rem .5rem}.change-password-page button{margin-top:.75rem;padding:.5rem 1rem;cursor:pointer}.change-password-page .change-password-error{color:#c62828}.change-password-page .change-password-success{color:#2e7d32}.admin-contacts-page .admin-hint{color:#555;font-size:.95rem;margin-bottom:1rem}.admin-contacts-page .cascade-filters label{display:block;margin:.75rem 0}.admin-contacts-page select{margin-left:.5rem;min-width:12rem}.admin-contacts-page .empty-message{color:#666}.admin-contacts-page .selected-info{margin-top:.5rem;font-weight:600;color:#2e7d32}.admin-contacts-page fieldset{margin:1rem 0}.admin-contacts-page label{display:block;margin:.5rem 0}.admin-contacts-page .field-error{display:block;color:#c62828;font-size:.9rem}.admin-contacts-page .form-message.success{color:#2e7d32;margin-top:1rem}.admin-contacts-page .form-message.error{color:#c62828;margin-top:1rem}.admin-contacts-list-page{max-width:1200px}.admin-contacts-list-page .filters-bar{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin:1rem 0}.admin-contacts-list-page .filters-bar label{display:flex;flex-direction:column;font-size:.9rem}.admin-contacts-list-page .filters-bar input,.admin-contacts-list-page .filters-bar select{margin-top:.25rem;padding:.3rem .5rem}.admin-contacts-list-page .filters-bar button{padding:.4rem 1rem;cursor:pointer}.admin-contacts-list-page .total-info{color:#555;font-size:.9rem}.admin-contacts-list-page .list-error{color:#c62828}.admin-contacts-list-page .empty-message{color:#666}.contacts-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.contacts-table th,.contacts-table td{border:1px solid #ddd;padding:.4rem .5rem;text-align:left;white-space:nowrap}.contacts-table th{background:#f5f5f5;position:sticky;top:0}.contacts-table tr.status-inactive{opacity:.55}.status-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.8rem}.status-badge.pending{background:#fff3cd;color:#856404}.status-badge.validated{background:#d4edda;color:#155724}.status-badge.inactive{background:#e2e3e5;color:#383d41}.contacts-table .actions{white-space:nowrap}.contacts-table .actions button{margin-right:.3rem;padding:.2rem .5rem;font-size:.8rem;cursor:pointer;border:1px solid #ccc;border-radius:3px;background:#fff}.contacts-table .btn-validate{color:#155724;border-color:#28a745}.contacts-table .btn-validate:hover{background:#d4edda}.contacts-table .btn-edit{color:#004085;border:1px solid #007bff;border-radius:3px;padding:.2rem .5rem;font-size:.8rem;text-decoration:none;display:inline-block}.contacts-table .btn-edit:hover{background:#cce5ff}.contacts-table .btn-pending{color:#0c5460;border-color:#17a2b8}.contacts-table .btn-pending:hover{background:#d1ecf1}.contacts-table .btn-inactive{color:#856404;border-color:#ffc107}.contacts-table .btn-inactive:hover{background:#fff3cd}.bulk-actions{display:flex;gap:.5rem;align-items:center;margin:.75rem 0;padding:.5rem .75rem;background:#e3f2fd;border-radius:6px;flex-wrap:wrap}.bulk-actions span{font-weight:600;font-size:.9rem}.bulk-actions button{padding:.3rem .7rem;font-size:.8rem;cursor:pointer;border:1px solid #ccc;border-radius:3px;background:#fff}.app:has(.audit-log-page){max-width:1200px}.audit-log-page .filters-bar{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin:1rem 0}.audit-log-page .filters-bar label{display:flex;flex-direction:column;font-size:.9rem}.audit-log-page .filters-bar input,.audit-log-page .filters-bar select{margin-top:.25rem;padding:.3rem .5rem}.audit-log-page .filters-bar button{padding:.4rem 1rem;cursor:pointer}.audit-log-page .total-info{color:#555;font-size:.9rem}.audit-log-page .list-error{color:#c62828}.audit-log-page .empty-message{color:#666}.audit-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.audit-table th,.audit-table td{border:1px solid #ddd;padding:.4rem .5rem;text-align:left}.audit-table th{background:#f5f5f5;position:sticky;top:0}.audit-table .entity-id-cell{max-width:150px;overflow:hidden;text-overflow:ellipsis}.action-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.8rem}.action-badge.insert{background:#d4edda;color:#155724}.action-badge.update{background:#cce5ff;color:#004085}.action-badge.select{background:#e2e3e5;color:#383d41}.action-badge.status_change{background:#fff3cd;color:#856404}.action-badge.delete{background:#f8d7da;color:#721c24}.pagination{display:flex;gap:1rem;align-items:center;justify-content:center;margin:1rem 0}.pagination button{padding:.3rem .8rem;cursor:pointer;border:1px solid #ccc;border-radius:3px;background:#fff}.pagination button:disabled{opacity:.5;cursor:default}.superadmin-admins-page{max-width:900px}.superadmin-admins-page .superadmin-admins-hint{color:#555;font-size:.95rem;margin-bottom:1rem}.superadmin-admins-page .superadmin-admins-error{color:#c62828;margin-bottom:.5rem}.superadmin-add-form,.superadmin-list,.superadmin-patch-form{margin:1.5rem 0}.superadmin-add-form h2,.superadmin-list h2,.superadmin-patch-form h2{margin:0 0 .5rem;font-size:1.1rem}.superadmin-add-form label,.superadmin-patch-form label{display:block;margin:.5rem 0}.superadmin-add-form input,.superadmin-patch-form input{display:block;margin-top:.25rem;padding:.4rem .5rem;min-width:200px}.superadmin-add-form button,.superadmin-patch-form button{margin-right:.5rem;margin-top:.5rem;padding:.4rem 1rem;cursor:pointer}.superadmin-admins-page .required{color:#c62828}.superadmin-empty{color:#666}.superadmin-admins-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:.5rem}.superadmin-admins-table th,.superadmin-admins-table td{border:1px solid #ddd;padding:.4rem .5rem;text-align:left}.superadmin-admins-table th{background:#f5f5f5}.superadmin-admins-table .superadmin-btn-set-pwd,.superadmin-admins-table .superadmin-btn-delete{margin-right:.3rem;padding:.2rem .5rem;font-size:.85rem;cursor:pointer}.superadmin-admins-table .superadmin-btn-delete:disabled{opacity:.5;cursor:not-allowed}.home-quorum{margin-top:1.5rem;padding:1rem;background:#f5f5f5;border-radius:8px}.home-quorum .quorum-loading,.home-quorum .quorum-error{color:#666;margin:0}.home-quorum .quorum-block{margin:0}.home-quorum .quorum-block h2{margin:0 0 .5rem;font-size:1.1rem}.home-quorum .quorum-stats{margin:0 0 .5rem;font-size:.95rem}.home-quorum .quorum-progress-wrap{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin:.5rem 0}.home-quorum .quorum-progress{height:100%;background:#1976d2;border-radius:4px;transition:width .2s}.home-quorum .quorum-result{margin:.5rem 0 0;font-weight:600;font-size:.95rem}.home-quorum .quorum-result.quorum-reached{color:#2e7d32}
