/*
   i-Bina professional UI pass
   Final stylesheet loaded after feature CSS. It normalizes the app into one
   operational SaaS interface without changing page logic.
*/

:root {
  --ib-radius-sm: 8px;
  --ib-radius-md: 8px;
  --ib-radius: 8px;
  --ib-radius-lg: 8px;
  --ib-radius-xl: 8px;
  --ib-content-max: 1240px;
  --ib-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
  --ib-shadow-md: 0 8px 22px rgba(15, 23, 42, 0.08);
  --ib-shadow-lg: 0 18px 42px rgba(15, 23, 42, 0.12);
  --ib-shadow-xl: 0 24px 56px rgba(15, 23, 42, 0.16);
}

html,
body {
  color: var(--ib-on-surface);
  background: var(--ib-surface);
}

body {
  text-rendering: optimizeLegibility;
}

::selection {
  color: #fff;
  background: var(--ib-primary);
}

.app-content__article {
  width: 100%;
}

.app-shell.authenticated .app-content__article {
  padding-inline: clamp(18px, 2.4vw, 36px);
}

.app-shell.guest .app-content__article {
  padding-top: var(--ib-space-5);
}

/* Page shells */
.grade-management,
.user-list-container,
.owner-task-shell,
.admin-task-page,
.admin-token-page,
.dash-overview,
.financial-info-form,
.previous-projects-form,
.supplier-products-services-form,
.contractor-profile-view,
.supplier-profile-view,
.pm-page,
.token-ledger-page,
.feedback-page,
.notification-page,
.marketplace-page {
  width: min(100%, var(--ib-content-max));
  max-width: var(--ib-content-max);
  margin-inline: auto;
  padding-block: var(--ib-space-4) var(--ib-space-8);
}

.grade-header,
.user-list-header,
.admin-task-header,
.owner-task-header,
.pm-detail__header,
.ib-page__header,
.dash-overview__hero {
  margin-bottom: var(--ib-space-5);
}

.grade-header,
.admin-task-header,
.ib-page__header-row,
.pm-section-head,
.task-form-panel__header,
.document-card-header,
.financial-cards-header,
.security-section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ib-space-4);
  flex-wrap: wrap;
}

.grade-header h1,
.user-list-header h1,
.owner-task-shell h1,
.admin-task-header h1,
.ib-page__header h1,
.pm-detail__header h1,
.dash-overview__title,
.registration-head h1,
.signup-header h1 {
  margin: 0;
  color: var(--ib-on-surface);
  font-family: var(--ib-font-display);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: 0;
}

.ib-page__header p,
.admin-task-header p,
.dash-overview__lead,
.products-services-hint,
.document-header-eyebrow,
.task-documents-section__hint {
  color: var(--ib-on-surface-muted);
  line-height: 1.55;
}

.header-line-above,
.header-line-below {
  height: 2px;
  max-width: 72px;
  background: var(--ib-primary);
  border-radius: 999px;
}

/* Cards, panels and repeated sections */
.ib-card,
.registration-card,
.signup-container-modern,
.login-form,
.user-registration-form-container,
.grade-table-container,
.table-view,
.admin-task-table-card,
.admin-token-policy,
.admin-summary-panel,
.admin-data-card,
.dash-kpi,
.dash-chart-panel,
.task-form-panel,
.task-documents-section,
.task-card,
.proposal-card,
.document-card,
.personal-section-card,
.security-section,
.products-services-content,
.previous-projects-form .project-card,
.financial-info-form .form-content,
.pm-card,
.pm-panel,
.pm-kpi,
.pm-doc,
.pm-team-card,
.pm-inline-form,
.pm-milestone,
.pm-update,
.token-ledger-card,
.feedback-card,
.notification-card {
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: var(--ib-surface-card);
  box-shadow: var(--ib-shadow);
}

.task-card,
.proposal-card,
.pm-card,
.ib-card--action,
.admin-action,
.option-chip,
.user-list-item,
.chat-list-item {
  transition: transform var(--ib-transition), box-shadow var(--ib-transition), border-color var(--ib-transition), background var(--ib-transition);
}

.task-card:hover,
.proposal-card:hover,
.pm-card:hover,
.ib-card--action:hover,
.admin-action:hover,
.option-chip:hover {
  transform: translateY(-2px);
  border-color: rgba(232, 32, 28, 0.26);
  box-shadow: var(--ib-shadow-md);
}

/* Buttons */
.btn,
.ib-btn,
.dash-btn,
.btn-register,
.btn-submit,
.btn-cancel,
.btn-primary,
.btn-secondary,
.btn-delete,
.save-button,
.secondary-button,
.document-primary,
.document-secondary,
.document-remove,
.submit-button,
.cancel-button,
.back-button,
.registration-submit,
.registration-cancel,
.registration-back,
.personal-primary,
.personal-secondary,
.security-primary,
.security-secondary,
.btn-add-card,
.btn-remove-card,
.pagination-btn,
.token-ledger-page-btn,
.task-table-action,
.task-action-link,
.admin-task-detail-btn,
.pm-tab,
.pm-modal__close,
.message-modal__button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: var(--ib-radius-sm);
  font-family: inherit;
  font-size: var(--ib-text-sm);
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: transform var(--ib-transition), box-shadow var(--ib-transition), border-color var(--ib-transition), background var(--ib-transition), color var(--ib-transition), opacity var(--ib-transition);
}

.btn-primary,
.btn-register,
.btn-submit,
.save-button,
.document-primary,
.submit-button,
.registration-submit,
.personal-primary,
.security-primary,
.dash-btn--primary,
.ib-btn--primary,
.message-modal__button,
.task-action-link--primary,
.task-table-action--primary {
  border: 1px solid transparent !important;
  background: var(--ib-primary-gradient) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(232, 32, 28, 0.22) !important;
}

.btn-primary:hover:not(:disabled),
.btn-register:hover:not(:disabled),
.btn-submit:hover:not(:disabled),
.save-button:hover:not(:disabled),
.document-primary:hover:not(:disabled),
.submit-button:hover:not(:disabled),
.registration-submit:hover:not(:disabled),
.personal-primary:hover:not(:disabled),
.security-primary:hover:not(:disabled),
.dash-btn--primary:hover:not(:disabled),
.ib-btn--primary:hover:not(:disabled),
.message-modal__button:hover:not(:disabled),
.task-action-link--primary:hover,
.task-table-action--primary:hover:not(:disabled) {
  transform: translateY(-1px);
  filter: brightness(1.03);
  box-shadow: 0 12px 24px rgba(232, 32, 28, 0.3) !important;
}

.btn-secondary,
.btn-cancel,
.secondary-button,
.document-secondary,
.cancel-button,
.back-button,
.registration-cancel,
.registration-back,
.personal-secondary,
.security-secondary,
.dash-btn--outline,
.ib-btn--outline,
.ib-btn--secondary,
.task-action-link,
.task-table-action,
.pagination-btn,
.token-ledger-page-btn {
  border: 1px solid var(--ib-outline) !important;
  background: var(--ib-surface-card) !important;
  color: var(--ib-on-surface) !important;
  box-shadow: none !important;
}

.btn-secondary:hover:not(:disabled),
.btn-cancel:hover:not(:disabled),
.secondary-button:hover:not(:disabled),
.document-secondary:hover:not(:disabled),
.cancel-button:hover:not(:disabled),
.back-button:hover:not(:disabled),
.registration-cancel:hover:not(:disabled),
.registration-back:hover:not(:disabled),
.personal-secondary:hover:not(:disabled),
.security-secondary:hover:not(:disabled),
.dash-btn--outline:hover:not(:disabled),
.ib-btn--outline:hover:not(:disabled),
.ib-btn--secondary:hover:not(:disabled),
.task-action-link:hover,
.task-table-action:hover:not(:disabled),
.pagination-btn:hover:not(:disabled),
.token-ledger-page-btn:hover:not(:disabled) {
  border-color: rgba(232, 32, 28, 0.38) !important;
  background: var(--ib-primary-light) !important;
  color: var(--ib-primary-dark) !important;
  transform: translateY(-1px);
}

.btn-delete,
.btn-remove-card,
.document-remove,
.ib-btn--danger,
.task-table-action--danger,
.action-btn.danger {
  border: 1px solid rgba(220, 38, 38, 0.28) !important;
  background: var(--ib-error-bg) !important;
  color: var(--ib-error) !important;
  box-shadow: none !important;
}

.btn-delete:hover:not(:disabled),
.btn-remove-card:hover:not(:disabled),
.document-remove:hover:not(:disabled),
.ib-btn--danger:hover:not(:disabled),
.task-table-action--danger:hover:not(:disabled),
.action-btn.danger:hover:not(:disabled) {
  border-color: var(--ib-error) !important;
  background: var(--ib-error) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

button:disabled,
.btn:disabled,
.ib-btn:disabled,
.save-button:disabled,
.document-primary:disabled,
.submit-button:disabled,
.registration-submit:disabled,
.pagination-btn:disabled,
.token-ledger-page-btn:disabled {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Icon and table action buttons */
.btn-icon,
.user-action-btn,
.search-btn,
.refresh-btn,
.message-input-send,
.close-button,
.setting-modal-close,
.admin-task-modal__close,
.task-image-card__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  border: 1px solid var(--ib-outline-light);
  border-radius: 50%;
  background: var(--ib-surface-card);
  color: var(--ib-on-surface-muted);
  box-shadow: none;
}

.btn-icon:hover,
.user-action-btn:hover,
.search-btn:hover,
.refresh-btn:hover,
.close-button:hover,
.setting-modal-close:hover,
.admin-task-modal__close:hover {
  border-color: rgba(232, 32, 28, 0.34);
  background: var(--ib-primary-light);
  color: var(--ib-primary-dark);
  transform: translateY(-1px);
}

.task-image-card__remove {
  background: rgba(15, 23, 42, 0.72);
  color: #fff;
  border-color: transparent;
}

.task-image-card__remove:hover {
  background: var(--ib-error);
  color: #fff;
}

.message-input-send {
  border-color: transparent;
  background: var(--ib-primary);
  color: #fff;
}

.user-action-btn--ledger,
.user-action-btn--activate {
  border-color: rgba(232, 32, 28, 0.28);
  background: rgba(232, 32, 28, 0.08);
  color: var(--ib-primary-dark);
}

.user-action-btn--ledger:hover,
.user-action-btn--activate:hover {
  border-color: rgba(232, 32, 28, 0.45);
  background: var(--ib-primary-light);
  color: var(--ib-primary-dark);
}

.user-action-btn--tokens {
  border-color: rgba(5, 150, 105, 0.28);
  background: rgba(5, 150, 105, 0.08);
  color: var(--ib-success);
}

.user-action-btn--tokens:hover {
  border-color: rgba(5, 150, 105, 0.45);
  background: var(--ib-success-bg);
  color: #047857;
}

.user-action-btn--deactivate {
  border-color: rgba(217, 119, 6, 0.28);
  background: rgba(217, 119, 6, 0.08);
  color: #b45309;
}

.user-action-btn--deactivate:hover {
  border-color: rgba(217, 119, 6, 0.45);
  background: var(--ib-warning-bg);
  color: #92400e;
}

.user-action-btn--delete {
  border-color: rgba(220, 38, 38, 0.28);
  background: rgba(220, 38, 38, 0.06);
  color: var(--ib-error);
}

.user-action-btn--delete:hover {
  border-color: rgba(220, 38, 38, 0.45);
  background: var(--ib-error-bg);
  color: var(--ib-error);
}

/* Forms and filters */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea,
.form-control,
.form-input,
.registration-input,
.column-filter,
.filter-select,
.filter-search,
.search-input,
.ib-input,
.ib-select,
.ib-textarea,
.message-input-textarea {
  min-height: 42px;
  border: 1px solid var(--ib-outline);
  border-radius: var(--ib-radius-sm);
  background: var(--ib-surface-card);
  color: var(--ib-on-surface);
  font-family: inherit;
  font-size: var(--ib-text-sm);
  line-height: 1.35;
  box-shadow: none;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-input:focus,
.registration-input:focus,
.column-filter:focus,
.filter-select:focus,
.filter-search:focus,
.search-input:focus,
.ib-input:focus,
.ib-select:focus,
.ib-textarea:focus,
.message-input-textarea:focus {
  outline: none;
  border-color: var(--ib-primary);
  box-shadow: var(--ib-focus-ring);
}

textarea,
.ib-textarea,
.message-input-textarea {
  min-height: 96px;
  resize: vertical;
}

label,
.form-label,
.registration-field label,
.form-group label,
.owner-form-grid label,
.task-form-field label,
.ib-field label,
.document-label {
  color: var(--ib-on-surface);
  font-size: var(--ib-text-sm);
  font-weight: 700;
}

.filter-group label,
.ib-field small,
.form-help,
.token-cost-hint {
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
}

.user-list-filters,
.admin-task-filters,
.owner-task-toolbar,
.ib-toolbar,
.dash-toolbar,
.filters-left,
.filters-right {
  gap: var(--ib-space-3);
}

.user-list-filters,
.admin-task-filters,
.owner-task-toolbar {
  align-items: end;
  border-radius: var(--ib-radius);
  box-shadow: var(--ib-shadow);
}

.filter-group {
  min-width: min(220px, 100%);
}

.filters-left,
.filters-right,
.form-actions,
.registration-actions,
.document-actions,
.personal-actions,
.security-actions,
.pm-inline-form__actions,
.task-card-actions,
.card-actions,
.task-table-actions,
.user-actions {
  display: flex;
  align-items: center;
  gap: var(--ib-space-2);
  flex-wrap: wrap;
}

.form-actions,
.registration-actions,
.document-actions,
.personal-actions,
.security-actions {
  justify-content: flex-end;
}

.field-invalid input,
.field-invalid select,
.field-invalid textarea,
input.error,
select.error,
textarea.error,
.invalid:not([type="checkbox"]) {
  border-color: var(--ib-error) !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}

.valid.modified:not([type="checkbox"]) {
  border-color: rgba(5, 150, 105, 0.55) !important;
  box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.12) !important;
  outline: none;
}

.validation-message,
.error-text {
  display: block;
  margin-top: 5px;
  color: var(--ib-error);
  font-size: var(--ib-text-xs);
  font-weight: 600;
}

/* Tables */
.ib-table-wrap,
.grade-table-container,
.table-view,
.admin-task-table-wrap,
.token-ledger-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: var(--ib-surface-card);
  box-shadow: var(--ib-shadow);
}

.ib-table,
.grade-table,
.user-table,
.user-list-table,
.owner-task-table,
.admin-task-table,
.token-ledger-table,
.pm-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--ib-surface-card);
}

.ib-table th,
.grade-table th,
.user-table th,
.user-list-table th,
.owner-task-table th,
.admin-task-table th,
.token-ledger-table th,
.pm-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 12px 14px;
  border-bottom: 1px solid var(--ib-outline-light);
  background: #f8fafc;
  color: var(--ib-on-surface-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: start;
  white-space: nowrap;
}

.ib-table td,
.grade-table td,
.user-table td,
.user-list-table td,
.owner-task-table td,
.admin-task-table td,
.token-ledger-table td,
.pm-table td {
  padding: 13px 14px;
  border-bottom: 1px solid var(--ib-outline-light);
  color: var(--ib-on-surface);
  font-size: var(--ib-text-sm);
  vertical-align: middle;
}

.ib-table tbody tr:hover,
.grade-table tbody tr:hover,
.user-table tbody tr:hover,
.user-list-table tbody tr:hover,
.owner-task-table tbody tr:hover,
.admin-task-table tbody tr:hover,
.token-ledger-table tbody tr:hover,
.pm-table tbody tr:hover {
  background: #fbfdff;
}

.filter-row th {
  position: static;
  background: var(--ib-surface-card);
}

.action-buttons,
.user-actions,
.task-table-actions,
.pm-table__actions {
  justify-content: flex-start;
  flex-wrap: nowrap;
}

/* Status, badges and chips */
.ib-badge,
.status-badge,
.user-type-badge,
.task-type-badge,
.task-status-badge,
.task-card-status,
.status-pill,
.token-type-badge,
.pm-status,
.products-services-count,
.compare-best-badge,
.bidding-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  min-height: 24px;
  padding: 4px 10px;
  border-radius: var(--ib-radius-full);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.status-badge,
.user-type-badge,
.ib-badge {
  background: var(--ib-surface-hover);
  color: var(--ib-on-surface-muted);
}

.ib-badge--primary,
.task-bid-count,
.bidding-count-badge {
  background: var(--ib-primary-light);
  color: var(--ib-primary-dark);
}

.ib-badge--success,
.status-badge.active,
.status-badge--active,
.task-status-badge--success,
.task-card-status--completed {
  background: var(--ib-success-bg);
  color: #047857;
}

.ib-badge--error,
.status-badge.inactive,
.status-badge--inactive,
.task-status-badge--error,
.task-card-status--rejected {
  background: var(--ib-error-bg);
  color: var(--ib-error);
}

.ib-badge--warning,
.task-status-badge--warning {
  background: var(--ib-warning-bg);
  color: #92400e;
}

/* Uploads and document previews */
.task-image-upload__dropzone,
.document-upload-row {
  border: 1.5px dashed rgba(148, 163, 184, 0.65);
  border-radius: var(--ib-radius);
  background: #f8fafc;
  transition: border-color var(--ib-transition), background var(--ib-transition), box-shadow var(--ib-transition);
}

.task-image-upload__dropzone:hover,
.document-card:hover .document-upload-row {
  border-color: rgba(232, 32, 28, 0.45);
  background: var(--ib-primary-light);
  box-shadow: 0 10px 24px rgba(232, 32, 28, 0.08);
}

.document-upload-row {
  min-height: 76px;
  display: flex;
  align-items: center;
  padding: 14px;
}

input[type="file"] {
  width: 100%;
  max-width: 100%;
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-sm);
}

input[type="file"]::file-selector-button {
  min-height: 34px;
  margin-inline-end: 10px;
  padding: 7px 12px;
  border: 1px solid var(--ib-outline);
  border-radius: var(--ib-radius-sm);
  background: var(--ib-surface-card);
  color: var(--ib-on-surface);
  font-family: inherit;
  font-weight: 700;
  cursor: pointer;
}

input[type="file"]::file-selector-button:hover {
  border-color: var(--ib-primary);
  color: var(--ib-primary-dark);
  background: var(--ib-primary-light);
}

.document-grid,
.task-image-gallery,
.pm-doc-grid,
.pm-team-grid {
  gap: var(--ib-space-4);
}

.document-card {
  padding: var(--ib-space-5);
}

.document-card--missing,
.field-invalid,
.certifications-compliance-form .products-services-section.field-invalid,
.certifications-compliance-form .document-card.field-invalid {
  border-color: rgba(220, 38, 38, 0.5) !important;
}

.document-meta,
.task-image-gallery__count,
.task-document-list__name,
.pm-doc__name {
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
}

.task-image-card,
.pm-doc img,
.pm-update__photos img,
.pm-cover-preview {
  border-radius: var(--ib-radius);
}

.task-document-list__item {
  border-radius: var(--ib-radius);
  background: #f8fafc;
}

/* Project module: align with app brand */
.pm-page {
  --pm-primary: var(--ib-primary);
  --pm-border: var(--ib-outline-light);
  --pm-muted: var(--ib-on-surface-muted);
  --pm-bg-soft: #f8fafc;
}

.pm-card__cover,
.pm-team-card__avatar,
.pm-gantt__bar,
.pm-progress__fill {
  background: linear-gradient(135deg, var(--ib-primary) 0%, var(--ib-secondary) 100%);
}

.pm-status--inprogress,
.pm-status--planning,
.pm-status--onhold,
.pm-status--completed {
  position: static;
  color: #fff;
}

.pm-card__cover .pm-status {
  position: absolute;
  top: 10px;
  left: 10px;
}

.pm-tab {
  min-height: 42px;
  border-bottom-width: 2px;
}

.pm-tab--active {
  color: var(--ib-primary);
  border-bottom-color: var(--ib-primary);
}

.pm-modal-backdrop,
.setting-modal-overlay,
.forgot-password-modal-overlay,
.verification-modal-overlay,
.message-modal__overlay,
.milestone-modal-overlay,
.admin-task-modal-overlay {
  background: rgba(15, 23, 42, 0.5) !important;
  backdrop-filter: blur(4px);
}

.pm-modal,
.setting-modal,
.forgot-password-modal,
.verification-container,
.reset-password-container,
.milestone-modal-content,
.admin-task-modal,
.message-modal__dialog {
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  box-shadow: var(--ib-shadow-xl);
}

/* Chat */
.chat-container,
.ib-chat {
  border-radius: var(--ib-radius);
  box-shadow: var(--ib-shadow-md);
}

.chat-sidebar,
.ib-chat__sidebar {
  background: #f8fafc;
}

.chat-list-header,
.user-list-header,
.chat-window-header {
  background: var(--ib-surface-card);
}

.chat-list-item.selected,
.ib-chat__room--active {
  background: var(--ib-primary-light);
  border-left-color: var(--ib-primary);
}

.message-bubble.own-bubble {
  background: var(--ib-primary);
}

/* Header polish */
.ib-app-header__nav ::deep .nav-link.active,
.ib-public-header__nav ::deep .nav-link.active {
  background: var(--ib-primary);
  box-shadow: 0 8px 18px rgba(232, 32, 28, 0.22);
}

.ib-token-chip {
  border-color: rgba(232, 32, 28, 0.22);
  background: var(--ib-primary-light);
  color: var(--ib-primary-dark);
}

.ib-token-chip:hover {
  border-color: rgba(232, 32, 28, 0.4);
  background: rgba(232, 32, 28, 0.14);
  color: var(--ib-primary-dark);
}

.sidebar-content ::deep .sidebar-item.active {
  border-color: rgba(232, 32, 28, 0.18);
}

/* Alerts and feedback */
.error-message,
.alert-error,
.personal-feedback.error,
.security-feedback.error,
.document-feedback.error,
.products-services-feedback.error,
.dash-error,
.chat-error,
.ib-message--error {
  border: 1px solid rgba(220, 38, 38, 0.2) !important;
  border-radius: var(--ib-radius) !important;
  background: var(--ib-error-bg) !important;
  color: var(--ib-error) !important;
  padding: 12px 14px !important;
  font-weight: 600;
}

.success-message,
.alert-success,
.personal-feedback.success,
.security-feedback.success,
.document-feedback.success,
.products-services-feedback.success,
.ib-message--success {
  border: 1px solid rgba(5, 150, 105, 0.2) !important;
  border-radius: var(--ib-radius) !important;
  background: var(--ib-success-bg) !important;
  color: #047857 !important;
  padding: 12px 14px !important;
  font-weight: 600;
}

.ai-assist,
.ib-ai-assist {
  border-left: 4px solid var(--ib-primary) !important;
  background: linear-gradient(180deg, #fff, #f8fafc) !important;
}

/* Responsive tightening */
@media (max-width: 1024px) {
  .app-shell.authenticated .app-content__article {
    padding-inline: var(--ib-space-4);
  }

  .admin-data-grid,
  .pm-columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .grade-header,
  .admin-task-header,
  .user-list-filters,
  .admin-task-filters,
  .owner-task-toolbar,
  .task-form-panel__header,
  .pm-section-head,
  .document-card-header {
    align-items: stretch;
  }

  .filters-left,
  .filters-right,
  .filter-group,
  .form-actions,
  .document-actions,
  .registration-actions,
  .personal-actions,
  .security-actions {
    width: 100%;
  }

  .form-actions,
  .document-actions,
  .registration-actions,
  .personal-actions,
  .security-actions {
    justify-content: stretch;
  }

  .form-actions > *,
  .document-actions > *,
  .registration-actions > *,
  .personal-actions > *,
  .security-actions > *,
  .filters-right > *,
  .owner-task-toolbar > * {
    flex: 1 1 auto;
  }

  .action-buttons,
  .user-actions,
  .task-table-actions,
  .pm-table__actions {
    flex-wrap: wrap;
  }

  .chat-container {
    height: calc(100dvh - var(--ib-topbar-h) - var(--ib-footer-h));
  }

  .message-content-wrapper {
    max-width: 86%;
  }
}

@media (max-width: 520px) {
  .app-content__article {
    padding-inline: 12px;
  }

  .ib-table-wrap,
  .grade-table-container,
  .table-view,
  .admin-task-table-wrap,
  .token-ledger-table-wrap {
    border-radius: 0;
    margin-inline: -12px;
    border-inline: 0;
  }

  .document-card,
  .task-form-panel,
  .task-documents-section,
  .products-services-content,
  .financial-info-form .form-content {
    padding: var(--ib-space-4);
  }
}

/* Task registration flow */
.task-registration-page {
  --task-reg-accent: var(--ib-primary);
  --task-reg-soft: var(--ib-primary-light);
}

.task-registration-page--contractor {
  --task-reg-accent: var(--ib-secondary);
  --task-reg-soft: var(--ib-secondary-light);
}

.task-registration-hero {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: var(--ib-space-5);
  margin-bottom: var(--ib-space-5);
  padding: clamp(18px, 2.2vw, 28px);
  overflow: hidden;
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.96)),
    linear-gradient(135deg, rgba(232, 32, 28, 0.08), rgba(30, 58, 95, 0.08));
  box-shadow: var(--ib-shadow-md);
}

.task-registration-hero::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: 5px;
  background: var(--task-reg-accent);
}

.task-registration-hero__copy {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.task-registration-eyebrow,
.task-section-eyebrow {
  margin: 0;
  color: var(--task-reg-accent);
  font-size: var(--ib-text-xs);
  font-weight: 850;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.task-registration-hero h1 {
  margin: 0;
  max-width: 780px;
  color: var(--ib-on-surface);
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 850;
  line-height: 1.12;
}

.task-registration-hero__actions {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: var(--ib-space-2);
  flex-wrap: wrap;
  flex-shrink: 0;
}

.task-registration-chips {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.task-registration-chips span,
.task-required-note,
.task-registration-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: var(--ib-radius-full);
  background: rgba(255, 255, 255, 0.76);
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
  font-weight: 800;
  line-height: 1.2;
}

.task-registration-count {
  min-width: 32px;
  border-color: rgba(232, 32, 28, 0.2);
  background: var(--ib-primary-light);
  color: var(--ib-primary-dark);
}

.task-registration-form {
  display: flex;
  flex-direction: column;
  gap: var(--ib-space-4);
}

.task-registration-panel,
.task-registration-documents {
  margin: 0;
  padding: clamp(18px, 2vw, 26px);
}

.task-registration-panel .task-form-panel__header,
.task-registration-documents .task-documents-section__heading {
  margin-bottom: var(--ib-space-5);
  padding-bottom: var(--ib-space-4);
  border-bottom: 1px solid var(--ib-outline-light);
}

.task-registration-panel .task-form-panel__title,
.task-registration-documents .task-documents-section__title {
  margin: 4px 0 0;
  color: var(--ib-on-surface);
  font-size: var(--ib-text-lg);
  font-weight: 850;
  line-height: 1.2;
}

.task-registration-field {
  min-width: 0;
}

.task-registration-field label,
.task-form-field label {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 7px;
}

.task-registration-page .owner-form-grid {
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  gap: var(--ib-space-4) var(--ib-space-5);
  margin-bottom: var(--ib-space-5);
}

.task-registration-page .task-form-field--full {
  margin-top: var(--ib-space-2);
}

.task-registration-page .task-form-field--full textarea {
  min-height: 168px;
  line-height: 1.6;
}

.currency-input {
  position: relative;
  display: flex;
  align-items: center;
}

.currency-input .currency-symbol {
  position: absolute;
  inset-inline-start: 12px;
  z-index: 1;
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
  font-weight: 850;
  letter-spacing: 0.02em;
  pointer-events: none;
}

.currency-input input {
  padding-inline-start: 48px !important;
}

.task-registration-documents .task-image-upload__dropzone {
  min-height: 176px;
  margin-bottom: var(--ib-space-5);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(248, 250, 252, 0.92));
}

.task-registration-documents .task-image-upload__icon {
  width: 50px;
  height: 50px;
  color: var(--ib-primary);
}

.task-registration-documents .task-image-upload__text {
  font-size: var(--ib-text-md);
}

.task-registration-actions {
  position: sticky;
  bottom: calc(var(--ib-footer-h) + 10px);
  z-index: 20;
  margin-top: var(--ib-space-2);
  padding: var(--ib-space-3);
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--ib-shadow-md);
  backdrop-filter: blur(12px);
}

.task-registration-actions .token-cost-hint {
  flex: 1 1 280px;
  width: auto;
  padding: 8px 10px;
  border-radius: var(--ib-radius-sm);
  background: #f8fafc;
  color: var(--ib-on-surface-muted);
  font-weight: 700;
}

.task-registration-list-page .task-registration-hero {
  align-items: center;
}

.task-registration-toolbar {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 0.8fr)) minmax(260px, 1.4fr) auto;
  align-items: end;
  padding: var(--ib-space-4);
}

.task-registration-page--contractor .task-registration-toolbar {
  grid-template-columns: minmax(140px, 0.7fr) minmax(170px, 0.9fr) minmax(260px, 1.4fr) auto;
}

.task-registration-filter {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.task-registration-filter label {
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.task-registration-filter--search {
  min-width: min(360px, 100%);
}

.task-registration-toolbar__submit {
  min-width: 104px;
  border: 1px solid transparent !important;
  background: var(--ib-primary-gradient) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(232, 32, 28, 0.2) !important;
}

.task-registration-list-page .task-cards-grid {
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--ib-space-4);
}

.task-registration-list-page .task-card {
  min-height: 220px;
  padding: 20px;
}

.task-registration-list-page .task-card-title {
  font-size: var(--ib-text-lg);
}

.task-registration-list-page .task-card-description {
  min-height: 64px;
}

.task-registration-pagination {
  justify-content: center;
  padding: var(--ib-space-4);
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: var(--ib-surface-card);
  box-shadow: var(--ib-shadow);
}

.task-registration-pagination span {
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-sm);
  font-weight: 700;
}

@media (max-width: 1120px) {
  .task-registration-toolbar,
  .task-registration-page--contractor .task-registration-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .task-registration-toolbar__submit {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .task-registration-hero {
    flex-direction: column;
  }

  .task-registration-hero__actions,
  .task-registration-hero__actions > * {
    width: 100%;
  }

  .task-registration-page .owner-form-grid,
  .task-registration-toolbar,
  .task-registration-page--contractor .task-registration-toolbar {
    grid-template-columns: 1fr;
  }

  .task-registration-actions {
    position: static;
  }
}

@media (max-width: 520px) {
  .task-registration-hero,
  .task-registration-panel,
  .task-registration-documents,
  .task-registration-pagination {
    border-radius: 0;
    margin-inline: -12px;
    border-inline: 0;
  }
}

/* Professional filter system */
:root {
  --ib-filter-control-h: 44px;
  --ib-filter-border: #d7e1ee;
  --ib-filter-bg: #ffffff;
  --ib-filter-panel-bg: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.user-list-container > .user-list-filters,
.admin-task-page > .admin-task-filters,
.admin-token-page .admin-token-filters,
.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar),
.ib-page > .ib-toolbar:first-of-type,
.ib-page > .ib-search:first-of-type,
.ib-page-title + .ib-toolbar,
.ib-filter-panel,
.user-list > .user-list-filters,
.marketplace-search,
.marketplace-filters {
  margin-bottom: var(--ib-space-5);
  padding: clamp(14px, 1.5vw, 18px);
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: var(--ib-filter-panel-bg);
  box-shadow: var(--ib-shadow);
}

.user-list-container > .user-list-filters,
.admin-task-page > .admin-task-filters,
.admin-token-page .admin-token-filters {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ib-space-4);
}

.user-list-container > .user-list-filters .filters-left,
.admin-task-page > .admin-task-filters .filters-left {
  flex: 1 1 720px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
  gap: var(--ib-space-3);
  align-items: end;
}

.user-list-container > .user-list-filters .filters-right,
.admin-task-page > .admin-task-filters .filters-right {
  flex: 0 0 auto;
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: var(--ib-space-2);
}

.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar),
.ib-page > .ib-toolbar:first-of-type,
.ib-page > .ib-search:first-of-type,
.ib-page-title + .ib-toolbar {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--ib-space-3) !important;
}

.ib-filter-panel {
  display: block;
}

.ib-filter-panel.ib-toolbar,
.ib-filter-panel.ib-form {
  display: flex;
  flex-direction: column;
  gap: var(--ib-space-3);
}

.ib-filter-panel .ib-form__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--ib-space-3);
  align-items: end;
}

.filter-group,
.admin-token-filters .filter-group,
.task-registration-filter,
.ib-filter-panel .ib-field,
.marketplace-filters label,
.marketplace-search {
  min-width: 0;
}

.filter-group,
.admin-token-filters .filter-group,
.ib-filter-panel .ib-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.filter-group label,
.admin-token-filters label,
.task-registration-filter label,
.ib-filter-panel label,
.marketplace-filters label,
.marketplace-search__label,
.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > label {
  margin: 0;
  color: var(--ib-on-surface-muted);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > label {
  min-height: var(--ib-filter-control-h);
  display: inline-flex;
  align-items: center;
  padding-inline: 4px;
  white-space: nowrap;
}

.filter-select,
.filter-search,
.filter-input,
.column-filter,
.admin-token-filters .filter-select,
.admin-token-filters .filter-input,
.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > input,
.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > select,
.ib-page > .ib-toolbar:first-of-type .ib-input,
.ib-page > .ib-search:first-of-type .ib-input,
.ib-page > .ib-toolbar:first-of-type .form-control,
.ib-page > .ib-toolbar:first-of-type .form-select,
.ib-page-title + .ib-toolbar .form-control,
.ib-page-title + .ib-toolbar .form-select,
.ib-filter-panel .ib-input,
.ib-filter-panel .form-control,
.ib-filter-panel .form-select,
.marketplace-search input,
.marketplace-filters input,
.marketplace-filters select,
.user-list > .user-list-filters input,
.user-list > .user-list-filters select {
  width: 100%;
  min-height: var(--ib-filter-control-h);
  padding: 10px 13px;
  border: 1px solid var(--ib-filter-border) !important;
  border-radius: var(--ib-radius-sm) !important;
  background-color: var(--ib-filter-bg) !important;
  color: var(--ib-on-surface);
  font-size: var(--ib-text-sm);
  font-weight: 600;
  line-height: 1.3;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
  transition: border-color var(--ib-transition), box-shadow var(--ib-transition), background var(--ib-transition);
}

.filter-select:focus,
.filter-search:focus,
.filter-input:focus,
.column-filter:focus,
.admin-token-filters .filter-select:focus,
.admin-token-filters .filter-input:focus,
.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > input:focus,
.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > select:focus,
.ib-page > .ib-toolbar:first-of-type .ib-input:focus,
.ib-page > .ib-search:first-of-type .ib-input:focus,
.ib-page > .ib-toolbar:first-of-type .form-control:focus,
.ib-page > .ib-toolbar:first-of-type .form-select:focus,
.ib-page-title + .ib-toolbar .form-control:focus,
.ib-page-title + .ib-toolbar .form-select:focus,
.ib-filter-panel .ib-input:focus,
.ib-filter-panel .form-control:focus,
.ib-filter-panel .form-select:focus,
.marketplace-search input:focus,
.marketplace-filters input:focus,
.marketplace-filters select:focus,
.user-list > .user-list-filters input:focus,
.user-list > .user-list-filters select:focus {
  outline: none;
  border-color: var(--ib-primary) !important;
  box-shadow: var(--ib-focus-ring) !important;
}

.filter-select::placeholder,
.filter-search::placeholder,
.filter-input::placeholder,
.column-filter::placeholder,
.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > input::placeholder,
.ib-filter-panel input::placeholder,
.marketplace-search input::placeholder,
.user-list > .user-list-filters input::placeholder {
  color: #94a3b8;
  font-weight: 500;
}

.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > input {
  flex: 1 1 280px;
  max-width: 420px;
}

.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > select {
  flex: 1 1 155px;
  max-width: 230px;
}

.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > button,
.ib-page > .ib-toolbar:first-of-type .ib-btn,
.ib-page-title + .ib-toolbar .btn,
.ib-filter-panel .ib-btn,
.ib-filter-panel .btn,
.marketplace-search button,
.marketplace-filter-submit,
.marketplace-filter-head button,
.search-btn {
  min-height: var(--ib-filter-control-h);
  border-radius: var(--ib-radius-sm) !important;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > button,
.marketplace-search button,
.marketplace-filter-submit,
.search-btn {
  border: 1px solid transparent !important;
  background: var(--ib-primary-gradient) !important;
  color: #fff !important;
}

.marketplace-filter-head button,
.ib-filter-panel .ib-btn--outline,
.ib-page-title + .ib-toolbar .btn-secondary {
  border-color: var(--ib-filter-border) !important;
  background: #fff !important;
  color: var(--ib-on-surface) !important;
  box-shadow: var(--ib-shadow);
}

.search-group,
.marketplace-search__row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ib-space-2);
  align-items: end;
}

.search-btn {
  width: var(--ib-filter-control-h);
  min-width: var(--ib-filter-control-h);
  padding: 0 !important;
}

.user-list > .user-list-filters {
  display: grid;
  grid-template-columns: minmax(120px, 0.75fr) minmax(180px, 1.25fr);
  gap: var(--ib-space-2);
  border-left: 0;
  border-right: 0;
  border-radius: 0;
  box-shadow: none;
}

.user-list > .user-list-filters .filter-group {
  min-width: 0;
}

.marketplace-search {
  display: flex;
  flex-direction: column;
  gap: var(--ib-space-3);
}

.marketplace-search__quick {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ib-space-2);
}

.marketplace-search__quick button {
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid var(--ib-filter-border);
  border-radius: var(--ib-radius-sm);
  background: #fff;
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
  font-weight: 800;
}

.marketplace-filter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ib-space-3);
  padding-bottom: var(--ib-space-3);
  border-bottom: 1px solid var(--ib-outline-light);
}

.marketplace-filter-head h2 {
  margin: 0;
  color: var(--ib-on-surface);
  font-size: var(--ib-text-lg);
  font-weight: 850;
}

.marketplace-filters {
  display: flex;
  flex-direction: column;
  gap: var(--ib-space-3);
}

.marketplace-filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ib-space-3);
}

.marketplace-filters label {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.filter-row th {
  padding: 10px 12px !important;
  background: #fbfdff !important;
  border-bottom: 1px solid var(--ib-outline-light) !important;
}

.filter-row .column-filter {
  min-width: 150px;
  min-height: 38px;
  padding: 8px 10px;
  font-size: var(--ib-text-xs);
}

.filter-row .btn,
.filter-row button {
  width: 100%;
  min-height: 38px;
  border-radius: var(--ib-radius-sm) !important;
  font-weight: 800;
}

.admin-task-stage-strip {
  gap: var(--ib-space-3);
}

.admin-task-stage,
.admin-token-tab,
.marketplace-search__quick button {
  border-radius: var(--ib-radius-sm);
}

@media (max-width: 1024px) {
  .user-list-container > .user-list-filters,
  .admin-task-page > .admin-task-filters,
  .admin-token-page .admin-token-filters {
    flex-direction: column;
    align-items: stretch;
  }

  .user-list-container > .user-list-filters .filters-left,
  .admin-task-page > .admin-task-filters .filters-left {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .user-list-container > .user-list-filters .filters-right,
  .admin-task-page > .admin-task-filters .filters-right {
    width: 100%;
    justify-content: flex-start;
  }

  .owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > input,
  .owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > select {
    max-width: none;
  }
}

@media (max-width: 720px) {
  .user-list-container > .user-list-filters,
  .admin-task-page > .admin-task-filters,
  .admin-token-page .admin-token-filters,
  .owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar),
.ib-page > .ib-toolbar:first-of-type,
.ib-page > .ib-search:first-of-type,
  .ib-page-title + .ib-toolbar,
  .ib-filter-panel,
  .marketplace-search,
  .marketplace-filters {
    padding: var(--ib-space-3);
  }

  .user-list-container > .user-list-filters .filters-left,
  .admin-task-page > .admin-task-filters .filters-left,
  .ib-filter-panel .ib-form__row,
  .marketplace-filter-grid {
    grid-template-columns: 1fr;
  }

  .user-list > .user-list-filters,
  .marketplace-search__row,
  .search-group {
    grid-template-columns: 1fr;
  }

  .search-btn,
  .owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > button,
  .ib-page > .ib-toolbar:first-of-type .ib-btn,
  .ib-page-title + .ib-toolbar .btn,
  .marketplace-search button,
  .marketplace-filter-submit {
    width: 100%;
  }

  .owner-task-shell > .owner-task-toolbar:not(.task-registration-toolbar) > label {
    min-height: 0;
    width: 100%;
  }
}

.ib-page > .ib-toolbar:first-of-type > label,
.ib-page-title + .ib-toolbar > label {
  min-height: var(--ib-filter-control-h);
  display: inline-flex;
  align-items: center;
  margin: 0;
  color: var(--ib-on-surface-muted);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ib-page > .ib-toolbar:first-of-type .ib-input,
.ib-page > .ib-search:first-of-type .ib-input,
.ib-page > .ib-toolbar:first-of-type .form-control,
.ib-page > .ib-toolbar:first-of-type .form-select,
.ib-page-title + .ib-toolbar .form-control,
.ib-page-title + .ib-toolbar .form-select,
.ib-filter-panel .ib-input,
.ib-filter-panel .form-control,
.ib-filter-panel .form-select {
  max-width: none !important;
  flex: 1 1 175px;
}

.ib-page > .ib-toolbar:first-of-type .ib-input--search,
.ib-page > .ib-search:first-of-type .ib-input,
.ib-filter-panel .ib-input--search,
.ib-page > .ib-toolbar:first-of-type input[type="search"],
.ib-page > .ib-toolbar:first-of-type input[type="text"],
.ib-page-title + .ib-toolbar input[type="text"] {
  flex: 2 1 280px;
}

.ib-page > .ib-toolbar:first-of-type .ib-btn,
.ib-page > .ib-toolbar:first-of-type a.ib-btn,
.ib-page-title + .ib-toolbar .btn,
.ib-filter-panel .ib-btn,
.ib-filter-panel a.ib-btn {
  flex: 0 0 auto;
}

/* Professional form system */
:root {
  --ib-form-control-h: 46px;
  --ib-form-control-pad-x: 14px;
  --ib-form-border: #d7e1ee;
  --ib-form-border-hover: #b8c6d8;
  --ib-form-muted-bg: #f8fafc;
  --ib-form-panel-bg: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}

.user-registration-form,
.registration-card form,
.signup-container-modern form,
.login-form,
.reset-password-form,
.personal-form-content,
.security-form-content,
.products-services-content,
.certifications-compliance-content,
.financial-info-form form,
.previous-projects-form .form-content,
.task-registration-form,
.message-modal__form,
.pm-inline-form {
  display: flex;
  flex-direction: column;
  gap: var(--ib-space-4);
}

.user-registration-form-container,
.login-form,
.reset-password-container,
.signup-container-modern,
.registration-card,
.personal-section-card,
.security-section,
.products-services-content,
.financial-info-form .form-content,
.previous-projects-form .project-card,
.task-form-panel,
.task-documents-section,
.pm-modal,
.pm-inline-form,
.setting-modal,
.forgot-password-modal,
.message-modal__dialog,
.milestone-modal-content {
  border: 1px solid var(--ib-outline-light) !important;
  border-radius: var(--ib-radius) !important;
  background: var(--ib-form-panel-bg) !important;
  box-shadow: var(--ib-shadow-md) !important;
}

.task-registration-hero {
  padding: clamp(20px, 2.4vw, 30px);
}

.user-registration-form-container,
.financial-info-form .form-content,
.products-services-content,
.personal-section-card,
.security-section,
.previous-projects-form .project-card,
.task-form-panel,
.task-documents-section {
  padding: clamp(18px, 2vw, 26px);
}

.registration-grid,
.personal-grid,
.security-grid,
.owner-form-grid,
.project-field-grid,
.form-section,
.form-row,
.pm-form-row,
.document-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: var(--ib-space-4);
  align-items: start;
}

.registration-grid.two,
.personal-grid.two-column,
.security-grid.two-column {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
}

.document-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.form-group,
.registration-field,
.ib-field,
.personal-input-card,
.security-input-card,
.contractor-input-card,
.supplier-input-card,
.cert-compliance-field,
.task-form-field,
.task-registration-field,
.pm-field,
.message-modal__field,
.setting-modal-body .form-group,
.owner-form-grid > div,
.pm-form-row > div,
.project-field-grid > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
}

.full-span,
.task-form-field--full,
.project-field-grid .full-span,
.personal-input-card.company-logo-field,
.card-entry-shell,
.debit-card-expiry-ccv-row {
  grid-column: 1 / -1;
}

.form-header,
.task-form-panel__header,
.financial-cards-header,
.project-card-header,
.products-services-section__head,
.document-card-header,
.setting-modal-header,
.pm-modal__header,
.modal-header {
  gap: var(--ib-space-3);
}

.form-header h2,
.setting-modal-header h2,
.pm-modal__header h2,
.modal-header h2,
.task-form-panel__title,
.products-services-section__head h2,
.financial-cards-header h3,
.project-card-header h3 {
  margin: 0;
  color: var(--ib-on-surface);
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: 0;
}

.form-group label,
.registration-field label,
.ib-field label,
.personal-input-card label,
.security-input-card label,
.contractor-input-card label,
.supplier-input-card label,
.cert-compliance-field label,
.task-form-field label,
.task-registration-field label,
.owner-form-grid label,
.pm-form-row label,
.setting-modal-body label,
.forgot-password-modal label,
.document-label,
.ib-label {
  margin: 0;
  color: var(--ib-on-surface);
  font-size: var(--ib-text-sm);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0;
}

.form-group small,
.ib-field small,
.username-requirements,
.password-requirements,
.document-meta,
.company-logo-upload__meta,
.products-services-hint,
.task-documents-section__hint {
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
  line-height: 1.45;
}

.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.form-group select,
.form-group textarea,
.registration-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.registration-field select,
.registration-field textarea,
.personal-input-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.personal-input-card select,
.personal-input-card textarea,
.security-input-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.security-input-card select,
.security-input-card textarea,
.cert-compliance-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.cert-compliance-field select,
.cert-compliance-field textarea,
.task-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.task-form-field select,
.task-form-field textarea,
.task-registration-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.task-registration-field select,
.task-registration-field textarea,
.owner-form-grid input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.owner-form-grid select,
.owner-form-grid textarea,
.pm-form-row input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.pm-form-row select,
.pm-form-row textarea,
.pm-modal__body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.pm-modal__body select,
.pm-modal__body textarea,
.setting-modal-body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.setting-modal-body select,
.setting-modal-body textarea,
.forgot-password-modal input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.forgot-password-modal select,
.forgot-password-modal textarea,
.ib-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.ib-form select,
.ib-form textarea {
  width: 100%;
  min-height: var(--ib-form-control-h);
  padding: 11px var(--ib-form-control-pad-x);
  border: 1px solid var(--ib-form-border);
  border-radius: var(--ib-radius-sm);
  background: #fff;
  color: var(--ib-on-surface);
  font-family: inherit;
  font-size: var(--ib-text-sm);
  line-height: 1.35;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
  transition: border-color var(--ib-transition), box-shadow var(--ib-transition), background-color var(--ib-transition);
}

.form-group textarea,
.registration-field textarea,
.personal-input-card textarea,
.security-input-card textarea,
.cert-compliance-field textarea,
.task-form-field textarea,
.pm-modal__body textarea,
.ib-form textarea {
  min-height: 118px;
  line-height: 1.55;
}

.form-group input:hover:not(:disabled):not([readonly]),
.form-group select:hover:not(:disabled),
.form-group textarea:hover:not(:disabled):not([readonly]),
.registration-field input:hover:not(:disabled):not([readonly]),
.registration-field select:hover:not(:disabled),
.registration-field textarea:hover:not(:disabled):not([readonly]),
.personal-input-card input:hover:not(:disabled):not([readonly]),
.personal-input-card select:hover:not(:disabled),
.personal-input-card textarea:hover:not(:disabled):not([readonly]),
.security-input-card input:hover:not(:disabled):not([readonly]),
.security-input-card select:hover:not(:disabled),
.security-input-card textarea:hover:not(:disabled):not([readonly]),
.cert-compliance-field input:hover:not(:disabled):not([readonly]),
.cert-compliance-field select:hover:not(:disabled),
.cert-compliance-field textarea:hover:not(:disabled):not([readonly]),
.task-form-field input:hover:not(:disabled):not([readonly]),
.task-form-field select:hover:not(:disabled),
.task-form-field textarea:hover:not(:disabled):not([readonly]),
.task-registration-field input:hover:not(:disabled):not([readonly]),
.task-registration-field select:hover:not(:disabled),
.task-registration-field textarea:hover:not(:disabled):not([readonly]),
.owner-form-grid input:hover:not(:disabled):not([readonly]),
.owner-form-grid select:hover:not(:disabled),
.owner-form-grid textarea:hover:not(:disabled):not([readonly]),
.pm-modal__body input:hover:not(:disabled):not([readonly]),
.pm-modal__body select:hover:not(:disabled),
.pm-modal__body textarea:hover:not(:disabled):not([readonly]),
.setting-modal-body input:hover:not(:disabled):not([readonly]),
.setting-modal-body select:hover:not(:disabled),
.setting-modal-body textarea:hover:not(:disabled):not([readonly]),
.ib-form input:hover:not(:disabled):not([readonly]),
.ib-form select:hover:not(:disabled),
.ib-form textarea:hover:not(:disabled):not([readonly]) {
  border-color: var(--ib-form-border-hover);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.registration-field input:focus,
.registration-field select:focus,
.registration-field textarea:focus,
.personal-input-card input:focus,
.personal-input-card select:focus,
.personal-input-card textarea:focus,
.security-input-card input:focus,
.security-input-card select:focus,
.security-input-card textarea:focus,
.cert-compliance-field input:focus,
.cert-compliance-field select:focus,
.cert-compliance-field textarea:focus,
.task-form-field input:focus,
.task-form-field select:focus,
.task-form-field textarea:focus,
.task-registration-field input:focus,
.task-registration-field select:focus,
.task-registration-field textarea:focus,
.owner-form-grid input:focus,
.owner-form-grid select:focus,
.owner-form-grid textarea:focus,
.pm-modal__body input:focus,
.pm-modal__body select:focus,
.pm-modal__body textarea:focus,
.setting-modal-body input:focus,
.setting-modal-body select:focus,
.setting-modal-body textarea:focus,
.ib-form input:focus,
.ib-form select:focus,
.ib-form textarea:focus {
  outline: none;
  border-color: var(--ib-primary);
  box-shadow: var(--ib-focus-ring);
}

input:disabled,
select:disabled,
textarea:disabled,
input[readonly],
textarea[readonly] {
  background-color: var(--ib-form-muted-bg) !important;
  color: var(--ib-on-surface-muted) !important;
  cursor: not-allowed;
}

.currency-input {
  display: flex;
  min-height: var(--ib-form-control-h);
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--ib-form-border);
  border-radius: var(--ib-radius-sm);
  background: #fff;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
  transition: border-color var(--ib-transition), box-shadow var(--ib-transition);
}

.currency-input:focus-within {
  border-color: var(--ib-primary);
  box-shadow: var(--ib-focus-ring);
}

.currency-symbol {
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  padding-inline: 13px;
  border-right: 1px solid var(--ib-outline-light);
  background: var(--ib-form-muted-bg);
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-sm);
  font-weight: 800;
}

.currency-input input {
  min-height: calc(var(--ib-form-control-h) - 2px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.registration-password-wrap,
.password-input-container {
  position: relative;
}

.registration-password-wrap input,
.password-input-container input {
  padding-right: 48px !important;
}

.password-toggle {
  position: absolute;
  right: 7px;
  top: 50%;
  width: 34px;
  height: 34px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent !important;
  border-radius: var(--ib-radius-sm) !important;
  background: transparent !important;
  color: var(--ib-on-surface-muted) !important;
  font-size: var(--ib-text-sm);
  line-height: 1;
  box-shadow: none !important;
}

.password-toggle:hover {
  border-color: var(--ib-outline-light) !important;
  background: var(--ib-form-muted-bg) !important;
  color: var(--ib-primary) !important;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--ib-primary);
}

.registration-checkbox,
.personal-toggle-row,
.pm-check {
  display: flex;
  align-items: flex-start;
  gap: var(--ib-space-2);
  padding: 12px 14px;
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius-sm);
  background: var(--ib-form-muted-bg);
  color: var(--ib-on-surface-muted);
  line-height: 1.45;
}

.document-card {
  display: flex;
  min-height: 180px;
  flex-direction: column;
  gap: var(--ib-space-3);
}

.document-card-header {
  align-items: flex-start;
}

.document-upload-row {
  min-height: 92px;
  align-items: center;
  justify-content: center;
  border-color: rgba(148, 163, 184, 0.7);
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

input[type="file"]:not(.task-image-upload__input):not(.company-logo-upload__input) {
  min-height: 40px;
  padding: 6px;
  border: 1px solid var(--ib-form-border);
  border-radius: var(--ib-radius-sm);
  background: #fff;
}

input[type="file"]:not(.task-image-upload__input):not(.company-logo-upload__input)::file-selector-button {
  min-height: 32px;
  margin-inline-end: 10px;
  padding: 7px 12px;
  border: 0;
  border-radius: var(--ib-radius-sm);
  background: var(--ib-primary-light);
  color: var(--ib-primary-dark);
  font-family: inherit;
  font-weight: 850;
}

.task-image-upload__dropzone {
  border-radius: var(--ib-radius) !important;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%) !important;
}

.task-image-upload__dropzone:focus-within {
  border-color: var(--ib-primary) !important;
  box-shadow: var(--ib-focus-ring) !important;
}

.task-document-list,
.task-image-gallery {
  margin-top: var(--ib-space-3);
}

.task-document-list__item,
.card-entry {
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: #fff;
  box-shadow: var(--ib-shadow);
}

.card-entry {
  padding: var(--ib-space-4);
}

.form-actions,
.registration-actions,
.document-actions,
.personal-actions,
.security-actions,
.setting-modal-footer,
.pm-modal__footer,
.modal-footer,
.task-registration-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ib-space-2);
  flex-wrap: wrap;
  margin-top: var(--ib-space-2);
  padding-top: var(--ib-space-4);
  border-top: 1px solid var(--ib-outline-light);
}

.form-actions > .token-cost-hint,
.task-registration-actions > .token-cost-hint {
  margin-right: auto;
}

.form-actions button,
.form-actions a,
.registration-actions button,
.document-actions button,
.personal-actions button,
.security-actions button,
.setting-modal-footer button,
.pm-modal__footer button,
.modal-footer button,
.task-registration-actions button,
.task-registration-actions a,
.form-actions .form-back-link,
.personal-actions .form-back-link,
.security-actions .form-back-link,
.document-actions .form-back-link {
  min-height: 42px;
  min-width: 118px;
  padding: 10px 18px !important;
  border-radius: var(--ib-radius-sm) !important;
  font-weight: 700;
  box-sizing: border-box;
}

.form-actions > .form-back-link,
.form-actions > a.secondary-button:first-child {
  margin-right: auto;
}

.error-message,
.error-messages .error-message,
.alert.error,
.alert-error,
.document-feedback.error,
.personal-feedback.error,
.products-services-feedback.error,
.ib-message--error {
  border: 1px solid rgba(220, 38, 38, 0.24) !important;
  border-radius: var(--ib-radius-sm) !important;
  background: var(--ib-error-bg) !important;
  color: var(--ib-error) !important;
  padding: 12px 14px !important;
  font-size: var(--ib-text-sm);
  font-weight: 650;
}

.success-message,
.alert.success,
.alert-success,
.document-feedback.success,
.personal-feedback.success,
.products-services-feedback.success,
.ib-message--success {
  border: 1px solid rgba(5, 150, 105, 0.22) !important;
  border-radius: var(--ib-radius-sm) !important;
  background: var(--ib-success-bg) !important;
  color: #047857 !important;
  padding: 12px 14px !important;
  font-size: var(--ib-text-sm);
  font-weight: 650;
}

.validation-message,
.error-text {
  color: var(--ib-error);
  font-size: var(--ib-text-xs);
  font-weight: 700;
}

.field-invalid,
.document-card--missing,
.certifications-compliance-form .products-services-section.field-invalid,
.certifications-compliance-form .document-card.field-invalid {
  background: linear-gradient(180deg, #fff 0%, #fff8f8 100%) !important;
}

.field-invalid input,
.field-invalid select,
.field-invalid textarea,
.document-card--missing .document-upload-row {
  border-color: rgba(220, 38, 38, 0.62) !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}

.setting-modal-body,
.pm-modal__body,
.forgot-password-modal .modal-body {
  display: flex;
  flex-direction: column;
  gap: var(--ib-space-4);
}

.setting-modal-close,
.pm-modal__close,
.close-button {
  width: 36px;
  height: 36px;
  border-radius: var(--ib-radius-sm) !important;
}

.products-services-section,
.security-question,
.info-message {
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: #fff;
}

.products-services-section {
  padding: var(--ib-space-4);
}

.security-question,
.info-message {
  padding: 12px 14px;
  color: var(--ib-on-surface-muted);
  line-height: 1.5;
}

@media (max-width: 860px) {
  .registration-grid,
  .registration-grid.two,
  .personal-grid,
  .personal-grid.two-column,
  .security-grid,
  .security-grid.two-column,
  .owner-form-grid,
  .project-field-grid,
  .form-section,
  .form-row,
  .pm-form-row,
  .document-grid {
    grid-template-columns: 1fr;
  }

  .form-actions,
  .registration-actions,
  .document-actions,
  .personal-actions,
  .security-actions,
  .setting-modal-footer,
  .pm-modal__footer,
  .modal-footer,
  .task-registration-actions {
    align-items: stretch;
  }

  .form-actions button,
  .form-actions a,
  .registration-actions button,
  .document-actions button,
  .personal-actions button,
  .security-actions button,
  .setting-modal-footer button,
  .pm-modal__footer button,
  .modal-footer button,
  .task-registration-actions button,
  .task-registration-actions a {
    width: 100%;
    justify-content: center;
  }

  .form-actions > .token-cost-hint,
  .task-registration-actions > .token-cost-hint {
    width: 100%;
    margin-right: 0;
  }
}

/* Admin UI and modal polish */
.admin-token-page {
  padding-inline: 0;
}

.admin-token-page__header,
.user-list-header {
  text-align: start;
}

.admin-token-page__header h1,
.user-list-header h1 {
  margin: 0;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.18;
  letter-spacing: 0;
}

.admin-token-page__subtitle {
  max-width: 48rem;
  margin-top: 6px;
  color: var(--ib-on-surface-muted);
  line-height: 1.55;
}

.admin-token-stats,
.token-ledger-stats.admin-token-stats {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: var(--ib-space-3);
}

.token-ledger-stat {
  min-height: 104px;
  border-radius: var(--ib-radius);
  box-shadow: var(--ib-shadow);
}

.token-ledger-stat__label {
  font-weight: 850;
}

.token-ledger-stat__value {
  letter-spacing: 0;
}

.admin-token-policy {
  padding: var(--ib-space-4) var(--ib-space-5);
}

.task-card--craftbid-lead {
  border-color: var(--ib-primary, #e8201c);
  box-shadow: 0 0 0 1px rgba(232, 32, 28, 0.18), 0 10px 24px rgba(15, 23, 42, 0.08);
}

.task-card-craftbid {
  color: var(--ib-primary, #e8201c);
  font-weight: 700;
}

.craftbid-spend-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
}

.craftbid-spend-field__input-row {
  display: flex;
  min-height: var(--ib-form-control-h);
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--ib-form-border);
  border-radius: var(--ib-radius-sm);
  background: #fff;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
}

.craftbid-spend-field__input-row:focus-within {
  border-color: var(--ib-primary);
  box-shadow: var(--ib-focus-ring);
}

.craftbid-spend-field__input-row input {
  min-width: 0;
  min-height: calc(var(--ib-form-control-h) - 2px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.craftbid-spend-field__unit {
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  padding-inline: 13px;
  border-inline-start: 1px solid var(--ib-outline-light);
  background: var(--ib-form-muted-bg);
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-sm);
  font-weight: 800;
  white-space: nowrap;
}

.craftbid-spend-field__hint,
.craftbid-policy-help {
  margin: 0;
  color: var(--ib-on-surface-muted);
  font-size: var(--ib-text-xs);
  line-height: 1.45;
}

.craftbid-spend-field__input-row:has(input:disabled),
.craftbid-spend-field__input-row:has(input[readonly]) {
  background: var(--ib-form-muted-bg);
}

.craftbid-publish-bar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--ib-space-4);
  margin-bottom: var(--ib-space-5);
  padding: var(--ib-space-4);
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: var(--ib-shadow);
}

.craftbid-publish-bar .craftbid-spend-field {
  min-width: min(100%, 340px);
}

.admin-token-policy__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: var(--ib-space-4);
  margin-top: var(--ib-space-4);
}

@media (max-width: 900px) {
  .admin-token-policy__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .craftbid-publish-bar { align-items: stretch; flex-direction: column; }
  .craftbid-publish-bar > * { width: 100%; }
  .admin-token-policy__grid { grid-template-columns: 1fr; }
}

.admin-token-tabs {
  gap: var(--ib-space-2);
  padding: 4px;
  width: fit-content;
  max-width: 100%;
  border: 1px solid var(--ib-outline-light);
  border-radius: var(--ib-radius);
  background: #fff;
  box-shadow: var(--ib-shadow);
}

.admin-token-tab {
  min-height: 36px;
  border-color: transparent !important;
  background: transparent !important;
}

.admin-token-tab--active {
  background: var(--ib-primary-light) !important;
  color: var(--ib-primary-dark) !important;
}

.admin-task-kpis,
.admin-task-stage-strip {
  align-items: stretch;
}

.admin-task-kpi,
.admin-task-stage {
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}

.admin-task-kpi {
  transition: transform var(--ib-transition), box-shadow var(--ib-transition), border-color var(--ib-transition);
}

.admin-task-kpi:hover {
  transform: translateY(-1px);
  box-shadow: var(--ib-shadow-md);
}

.admin-task-stage {
  min-height: 54px;
}

.admin-task-stage--active {
  box-shadow: inset 0 0 0 1px rgba(232, 32, 28, 0.2), var(--ib-shadow);
}

.admin-task-table-card__header,
.admin-task-modal__header,
.token-ledger-modal__header,
.setting-modal-header,
.modal-header {
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%) !important;
  color: var(--ib-on-surface) !important;
}

.setting-modal-header h2,
.token-ledger-modal__header h3,
.modal-header h2,
.modal-header h3,
.modal-header h5 {
  color: var(--ib-on-surface) !important;
}

.pm-modal-backdrop,
.setting-modal-overlay,
.forgot-password-modal-overlay,
.verification-modal-overlay,
.message-modal__overlay,
.milestone-modal-overlay,
.admin-task-modal-overlay,
.token-ledger-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 2500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(14px, 2vw, 28px);
  background: rgba(15, 23, 42, 0.58) !important;
  backdrop-filter: blur(8px);
}

.pm-modal,
.setting-modal,
.forgot-password-modal,
.verification-modal,
.verification-container,
.reset-password-container,
.milestone-modal-content,
.admin-task-modal,
.token-ledger-modal,
.message-modal__container {
  width: min(100%, 720px);
  max-height: calc(100dvh - 48px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(226, 232, 240, 0.92) !important;
  border-radius: var(--ib-radius) !important;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%) !important;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28) !important;
}

.setting-modal,
.forgot-password-modal {
  width: min(100%, 560px);
}

.message-modal__container {
  width: min(100%, 440px);
  padding: 0;
  text-align: start;
}

.admin-task-modal {
  width: min(100%, 820px);
}

.token-ledger-modal {
  width: min(100%, 1040px);
}

.token-ledger-modal[style*="520px"] {
  width: min(100%, 520px);
}

.setting-modal-header,
.admin-task-modal__header,
.token-ledger-modal__header,
.modal-header {
  flex: 0 0 auto;
  padding: 18px 20px;
  border-bottom: 1px solid var(--ib-outline-light) !important;
}

.setting-modal-body,
.admin-task-modal__body,
.token-ledger-modal__body,
.modal-body,
.message-modal__message {
  overflow-y: auto;
}

.setting-modal-body,
.admin-task-modal__body,
.token-ledger-modal__body,
.modal-body {
  padding: 20px;
}

.message-modal__title {
  margin: 0;
  padding: 22px 56px 0 24px;
  font-size: var(--ib-text-xl);
}

.message-modal__message {
  margin: 0;
  padding: 10px 24px 22px;
  color: var(--ib-on-surface-muted);
}

.message-modal__actions {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: var(--ib-space-2);
  padding: 16px 20px;
  border-top: 1px solid var(--ib-outline-light);
  background: #fff;
}

.message-modal__button {
  min-height: 42px;
}

.message-modal__button--secondary {
  border: 1px solid var(--ib-outline) !important;
  background: var(--ib-surface-card) !important;
  color: var(--ib-on-surface) !important;
  box-shadow: none !important;
}

.message-modal__button--secondary:hover:not(:disabled) {
  border-color: rgba(232, 32, 28, 0.38) !important;
  background: var(--ib-primary-light) !important;
  color: var(--ib-primary-dark) !important;
}

.setting-modal-footer,
.admin-task-modal__footer,
.modal-footer,
.form-actions {
  flex: 0 0 auto;
}

.setting-modal-close,
.token-ledger-modal__close,
.pm-modal__close,
.close-button,
.admin-task-modal__close,
.message-modal__close {
  position: relative;
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0 !important;
  border: 1px solid var(--ib-outline-light) !important;
  border-radius: var(--ib-radius-sm) !important;
  background: #fff !important;
  color: var(--ib-on-surface-muted) !important;
  font-size: 0 !important;
  line-height: 1 !important;
  box-shadow: var(--ib-shadow) !important;
}

.message-modal__close {
  top: 14px;
  right: 14px;
}

.setting-modal-close::before,
.token-ledger-modal__close::before,
.pm-modal__close::before,
.close-button::before,
.admin-task-modal__close::before,
.message-modal__close::before {
  content: "x";
  font-size: 16px;
  font-weight: 850;
  line-height: 1;
}

.setting-modal-close:hover,
.token-ledger-modal__close:hover,
.pm-modal__close:hover,
.close-button:hover,
.admin-task-modal__close:hover,
.message-modal__close:hover {
  border-color: rgba(232, 32, 28, 0.34) !important;
  background: var(--ib-primary-light) !important;
  color: var(--ib-primary-dark) !important;
  transform: translateY(-1px);
}

.detail-row {
  align-items: flex-start;
  gap: var(--ib-space-3);
}

.detail-row label {
  flex: 0 0 140px;
  min-width: 0;
}

.detail-row span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.warning-text {
  padding: 10px 12px;
  border: 1px solid rgba(220, 38, 38, 0.24);
  border-radius: var(--ib-radius-sm);
  background: var(--ib-error-bg);
}

.no-data,
.token-ledger-empty,
.admin-empty,
.loading,
.admin-token-loading {
  border-radius: var(--ib-radius);
}

@media (max-width: 720px) {
  .admin-token-tabs {
    width: 100%;
  }

  .admin-token-tab {
    flex: 1 1 160px;
  }

  .pm-modal,
  .setting-modal,
  .forgot-password-modal,
  .verification-modal,
  .verification-container,
  .reset-password-container,
  .milestone-modal-content,
  .admin-task-modal,
  .token-ledger-modal,
  .message-modal__container {
    width: 100%;
    max-height: calc(100dvh - 24px);
  }

  .setting-modal-footer,
  .admin-task-modal__footer,
  .modal-footer,
  .message-modal__actions {
    align-items: stretch;
  }

  .setting-modal-footer > *,
  .admin-task-modal__footer > *,
  .modal-footer > *,
  .message-modal__actions > * {
    width: 100%;
  }

  .detail-row {
    flex-direction: column;
    gap: 4px;
  }

  .detail-row label {
    flex-basis: auto;
  }
}

/* Professional form sections */
.pm-form-section-title {
  margin: 1.1rem 0 0.55rem;
  color: var(--ib-on-surface, #0f172a);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.task-registration-field--check {
  display: flex;
  align-items: flex-end;
  min-height: 42px;
}

.task-registration-field--check label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-weight: 600;
  cursor: pointer;
}

.task-registration-field--check input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  margin: 0;
}
