*{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}.entrance-picker{margin:1rem 0}.entrance-prompt{margin:.5rem 0;color:#555}.entrance-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.entrance-btn{padding:.5rem 1rem;font-size:1rem;cursor:pointer;border:1px solid #007bff;border-radius:6px;background:#fff;color:#007bff}.entrance-btn:hover{background:#e7f1ff}.entrance-bar{display:flex;align-items:center;gap:.75rem;margin:1rem 0;flex-wrap:wrap}.entrance-current{font-weight:600}.entrance-loading,.entrance-empty{color:#666}.entrance-error{color:#c62828}.btn-link{background:none;border:none;color:#007bff;cursor:pointer;text-decoration:underline;font-size:inherit;padding:0}.btn-link:hover{color:#0056b3}.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}.admin-consent-page{margin:1rem 0}.admin-consent-page .admin-consent-form{margin-top:1.5rem}.admin-consent-page .admin-consent-checkbox{display:flex;align-items:flex-start;gap:.5rem;margin:1rem 0}.admin-consent-page .admin-consent-checkbox input{margin-top:.25rem}.admin-consent-page .admin-consent-error{color:#c62828;margin:.5rem 0}.admin-consent-page .admin-consent-submit{margin-top:.5rem;padding:.5rem 1rem;font-size:1rem;cursor:pointer}.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-page .label-with-icon{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.admin-contacts-page .label-with-icon input{flex:1;min-width:12rem}.admin-contacts-page .telegram-link-icon{display:inline-flex;margin-left:.25rem}.admin-contacts-page .telegram-link-icon:hover{opacity:.85}.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}.admin-contacts-list-page .contacts-table tr.clickable-row{cursor:pointer}.admin-contacts-list-page .contacts-table tr.clickable-row:hover{background:#e3f2fd!important}.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 .col-owner,.contacts-table .col-tg{width:1%;text-align:center}.contacts-table tbody tr.row-stripe-0{background:#fff}.contacts-table tbody tr.row-stripe-1{background:#fafafa}.contacts-table tbody tr.row-stripe-2{background:#f4f4f4}.contacts-table tbody tr.row-stripe-3{background:#eee}.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}.contacts-table .btn-icon-link{display:inline-block;text-decoration:none;font-size:1.1rem;line-height:1;padding:.1rem}.contacts-table .btn-icon-link:hover{opacity:.8}.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:1400px}.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 .filters-bar .export-btn{background:#1b5e20;color:#fff;border:none;border-radius:3px}.audit-log-page .filters-bar .export-btn:hover{background:#2e7d32}.audit-log-page .filters-bar .export-btn:disabled{opacity:.5;cursor:default}.audit-log-page .total-info{color:#555;font-size:.9rem}.audit-log-page .list-error{color:#c62828}.audit-log-page .empty-message{color:#666}.link-telegram-chat{display:inline-flex;align-items:center;color:#08c;text-decoration:none}.link-telegram-chat:hover{opacity:.85}.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:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-table .entity-id-cell a{color:#1565c0;text-decoration:none}.audit-table .entity-id-cell a:hover{text-decoration:underline}.audit-table .user-cell{white-space:nowrap}.audit-table .user-cell .user-name{margin-right:.3rem}.audit-table .audit-time-cell{white-space:nowrap}.audit-no-details{color:#999;font-style:italic}.action-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.8rem;white-space:nowrap}.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,.action-badge.premise_removed,.action-badge.forget{background:#f8d7da;color:#721c24}.action-badge.bot_answers_update{background:#cce5ff;color:#004085}.action-badge.password_change{background:#fff3cd;color:#856404}.action-badge.policy_consent{background:#d4edda;color:#155724}.action-badge.export{background:#e2e3e5;color:#383d41}.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}.chessboard-entrance-stats{margin:.75rem 0;font-size:.95rem;color:#333}.chessboard-entrance-stats .chessboard-stats-line{margin:.25rem 0}.home-quorum .quorum-ed-stats{margin-top:.5rem}.chessboard-loading{color:#666}.chessboard-error{color:#c62828}.chessboard-empty{color:#666}.chessboard{margin:1rem 0}.chessboard-floor{margin-bottom:.5rem}.chessboard-floor-label{font-weight:600;font-size:.85rem;color:#555;margin-bottom:.25rem}.chessboard-row{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:2px}.chessboard-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;width:72px;min-height:56px;border:1px solid #bdbdbd;border-radius:4px;cursor:pointer;padding:2px 4px;text-align:center;font-family:inherit;transition:box-shadow .15s}.chessboard-cell:hover{box-shadow:0 0 0 2px #1976d2}.chessboard-cell:focus-visible{outline:2px solid #1976d2;outline-offset:1px}.cell-type{font-size:.6rem;color:#666;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cell-number{font-size:1.05rem;font-weight:700;line-height:1.2}.cell-icons{display:flex;gap:2px;align-items:center;min-height:16px}.cell-email{font-size:.85rem;line-height:1}.chessboard-legend{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem;padding:.5rem .75rem;background:#f5f5f5;border-radius:6px;font-size:.8rem;color:#444}.legend-title{font-weight:600}.legend-item{display:inline-flex;align-items:center;gap:4px}.legend-swatch{display:inline-block;width:14px;height:14px;border:1px solid #bdbdbd;border-radius:2px}.form-cache-notice{margin:.5rem 0 0;padding:.5rem .75rem;background:#e3f2fd;border-radius:6px;font-size:.9rem;color:#1565c0}.nudge-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.nudge-dialog{background:#fff;border-radius:10px;padding:1.5rem 1.75rem;max-width:400px;width:90%;box-shadow:0 8px 32px #0003;outline:none}.nudge-title{margin:0 0 .5rem;font-size:1.15rem}.nudge-text{margin:0 0 1.25rem;font-size:.95rem;color:#333;line-height:1.45}.nudge-actions{display:flex;flex-direction:column;gap:.5rem}.nudge-btn{padding:.6rem 1rem;font-size:1rem;border-radius:6px;cursor:pointer;border:1px solid transparent;font-family:inherit}.nudge-btn-primary{background:#1976d2;color:#fff;border-color:#1976d2}.nudge-btn-primary:hover{background:#1565c0}.nudge-btn-secondary{background:#fff;color:#1976d2;border-color:#1976d2}.nudge-btn-secondary:hover{background:#e3f2fd}.nudge-btn-close{background:none;color:#666;border:none;font-size:.9rem;margin-top:.25rem}.nudge-btn-close:hover{color:#333}
