/* ==========================================================================
   CyFun Tool - Profile Module Styles
   ========================================================================== */

.profile {
  max-width: 1200px;
}

.profile__header {
  margin-bottom: var(--space-xl);
}

/* --- Sections --- */
.profile-section {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-lg);
  overflow: hidden;
}

.profile-section__header {
  padding: var(--space-md) var(--space-lg);
  background: var(--color-bg-alt);
  border-bottom: 1px solid var(--color-border-light);
  font-family: var(--font-heading);
  font-weight: var(--weight-semibold);
  font-size: var(--text-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.profile-section__body {
  padding: var(--space-lg);
}

/* --- Impact Assessment --- */
.impact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.impact-row {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--color-border-light);
}

.impact-row:last-child {
  border-bottom: none;
}

.impact-row__label {
  flex: 1;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  min-width: 160px;
}

.impact-row__desc {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-weight: var(--weight-normal);
  display: block;
  margin-top: 2px;
}

.impact-row__options {
  display: flex;
  gap: var(--space-xs);
}

.impact-btn {
  padding: var(--space-xs) var(--space-md);
  border-radius: var(--radius-sm);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.impact-btn:hover {
  border-color: var(--color-primary-border);
}

.impact-btn.active-low {
  background: var(--color-info-bg);
  border-color: var(--color-level-basic);
  color: var(--color-level-basic);
}

.impact-btn.active-medium {
  background: var(--color-warning-bg);
  border-color: var(--color-level-important);
  color: var(--color-level-important);
}

.impact-btn.active-high {
  background: var(--color-danger-bg);
  border-color: var(--color-level-essential);
  color: var(--color-level-essential);
}

/* --- Recommendation Box --- */
.impact-recommendation {
  margin-top: var(--space-lg);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  border: 2px solid;
  display: flex;
  align-items: center;
  gap: var(--space-lg);
}

.impact-recommendation--basic {
  background: var(--color-info-bg);
  border-color: var(--color-level-basic);
}

.impact-recommendation--important {
  background: var(--color-warning-bg);
  border-color: var(--color-level-important);
}

.impact-recommendation--essential {
  background: var(--color-danger-bg);
  border-color: var(--color-level-essential);
}

.impact-recommendation__level {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  flex-shrink: 0;
}

.impact-recommendation__text {
  flex: 1;
  font-size: var(--text-sm);
}

.impact-recommendation__action {
  flex-shrink: 0;
}

/* --- Danger Zone --- */
.danger-zone {
  border-color: var(--color-danger-border);
}

.danger-zone .profile-section__header {
  background: var(--color-danger-bg);
  color: var(--color-danger);
}

/* --- Stats Row --- */
.profile-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.profile-stat {
  text-align: center;
  padding: var(--space-md);
  background: var(--color-bg-alt);
  border-radius: var(--radius-md);
}

.profile-stat__value {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  color: var(--color-dark);
}

.profile-stat__label {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* --- Export Options --- */
.export-options {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.export-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: var(--space-md);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
}

.export-option__info {
  flex: 1;
}

/* ==========================================================================
   NIS2 Scope & Risk Assessment Styles
   ========================================================================== */

/* --- NIS2 Subtitles --- */
.nis2-subtitle {
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  margin: 0 0 var(--space-md) 0;
  color: var(--color-dark);
}

/* --- Size Inputs --- */
.nis2-size-group {
  margin-bottom: var(--space-xl);
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-border-light);
}

.nis2-size-inputs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}

@media (max-width: 640px) {
  .nis2-size-inputs {
    grid-template-columns: 1fr;
  }
}

.nis2-computed-size {
  margin-top: var(--space-md);
  padding: var(--space-sm) var(--space-md);
  background: var(--color-bg-alt);
  border-radius: var(--radius-sm);
  font-size: var(--text-sm);
  display: inline-block;
}

/* --- Sector Group --- */
.nis2-sector-group {
  margin-bottom: var(--space-lg);
}

/* --- Entity Type Search Dropdown --- */
.nis2-entity-search-wrap {
  position: relative;
}

.nis2-entity-dropdown {
  display: none;
  position: fixed;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  box-shadow: var(--shadow-md);
  max-height: 300px;
  overflow-y: auto;
  z-index: var(--z-overlay);
}

.nis2-entity-dropdown__item {
  padding: var(--space-sm) var(--space-md);
  cursor: pointer;
  border-bottom: 1px solid var(--color-border-light);
  transition: background var(--transition-fast);
}

.nis2-entity-dropdown__item:hover {
  background: var(--color-bg-alt);
}

.nis2-entity-dropdown__item:last-child {
  border-bottom: none;
}

.nis2-entity-dropdown__item-name {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  line-height: 1.3;
}

.nis2-entity-dropdown__item-sub {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: 2px;
}

.nis2-entity-dropdown__empty {
  padding: var(--space-md);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-align: center;
}

/* --- Classification Result --- */
.nis2-classification-result {
  margin-top: var(--space-lg);
  padding: var(--space-md) var(--space-lg);
  border-radius: var(--radius-md);
  border: 2px solid var(--color-border);
  background: var(--color-bg-alt);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md);
}

.nis2-classification-result__label {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
}

.nis2-classification-result__detail {
  width: 100%;
}

/* --- Scope Result Card --- */
.nis2-scope-result-card {
  margin-top: var(--space-lg);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  border: 2px solid;
  text-align: center;
}

.nis2-scope-result-card--essential {
  background: var(--color-danger-bg);
  border-color: var(--color-level-essential);
}

.nis2-scope-result-card--important {
  background: var(--color-warning-bg);
  border-color: var(--color-level-important);
}

.nis2-scope-result-card--basic,
.nis2-scope-result-card--outofscope {
  background: var(--color-info-bg);
  border-color: var(--color-level-basic);
}

.nis2-scope-result-card__title {
  font-family: var(--font-heading);
  font-weight: var(--weight-semibold);
  font-size: var(--text-sm);
  margin-bottom: var(--space-sm);
}

.nis2-scope-result-card__badge {
  margin-bottom: var(--space-sm);
}

.nis2-scope-result-card__explain {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  margin-top: var(--space-sm);
}

.nis2-scope-result-card__exceptions {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-top: var(--space-md);
  text-align: left;
}

.nis2-scope-result-card__exceptions ul {
  margin: var(--space-xs) 0 0 var(--space-lg);
  padding: 0;
}

/* --- Risk Assessment Controls --- */
.nis2-risk-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.form-group--inline {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 140px;
}

.form-select--sm {
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--text-xs);
}

/* --- Risk Matrix Table --- */
.nis2-risk-matrix-wrap {
  overflow-x: auto;
  margin-bottom: var(--space-lg);
}

.nis2-risk-matrix {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-xs);
}

.nis2-risk-matrix th,
.nis2-risk-matrix td {
  padding: var(--space-xs) var(--space-sm);
  border: 1px solid var(--color-border);
  text-align: center;
  vertical-align: middle;
}

.nis2-risk-matrix thead th {
  background: var(--color-bg-alt);
  font-weight: var(--weight-semibold);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.nis2-risk-matrix__corner {
  text-align: left !important;
  min-width: 140px;
}

.nis2-risk-matrix__cat {
  text-align: left !important;
  font-weight: var(--weight-semibold);
  min-width: 140px;
  white-space: nowrap;
}

.nis2-risk-matrix__impact-col {
  width: 60px;
}

.nis2-risk-matrix__impact {
  width: 60px;
}

.nis2-risk-matrix__actor {
  width: 80px;
}

/* Cell coloring */
.nis2-risk-cell--low {
  background: rgba(46, 204, 113, 0.15);
}

.nis2-risk-cell--med {
  background: rgba(241, 196, 15, 0.2);
}

.nis2-risk-cell--high {
  background: rgba(231, 76, 60, 0.2);
}

/* Risk select within cells */
.nis2-risk-select {
  width: 100%;
  padding: 2px 4px;
  font-size: 11px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  cursor: pointer;
  text-align: center;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.nis2-risk-select:hover,
.nis2-risk-select:focus {
  border-color: var(--color-primary-border);
  background: var(--color-bg);
}

.nis2-risk-select--impact {
  font-weight: var(--weight-semibold);
}

/* --- Risk Result --- */
.nis2-risk-result {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-lg);
  padding: var(--space-lg);
  background: var(--color-bg-alt);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}

.nis2-risk-score {
  text-align: center;
  min-width: 100px;
}

.nis2-risk-score__value {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--weight-bold);
  color: var(--color-dark);
}

.nis2-risk-score__label {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.nis2-risk-level {
  text-align: center;
}

.nis2-risk-level__label {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xs);
}

.badge--lg {
  font-size: var(--text-md) !important;
  padding: var(--space-xs) var(--space-lg) !important;
}

.nis2-risk-thresholds {
  display: flex;
  gap: var(--space-md);
  color: var(--color-text-muted);
}

.nis2-risk-action {
  margin-left: auto;
}

/* --- NIS2 Scope Modal Services List --- */
.nis2-scope-services {
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-sm);
  padding: var(--space-sm);
}

.nis2-scope-service-group {
  margin-bottom: var(--space-sm);
}

.nis2-scope-service-cat {
  font-weight: var(--weight-semibold);
  font-size: var(--text-xs);
  color: var(--color-primary);
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-bg-alt);
  border-radius: var(--radius-sm);
  margin-bottom: var(--space-xs);
}

.nis2-scope-service-item {
  display: block;
  padding: 3px var(--space-sm) 3px var(--space-lg);
  font-size: var(--text-xs);
  cursor: pointer;
  line-height: 1.4;
}

.nis2-scope-service-item:hover {
  background: var(--color-bg-alt);
}

.nis2-scope-service-item input[type="checkbox"] {
  margin-right: var(--space-xs);
}

/* --- Risk Deviation Log --- */
.risk-deviation-log {
  margin-top: var(--space-md);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.risk-deviation-log__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-sm) var(--space-md);
  background: var(--color-bg-alt);
  cursor: pointer;
  user-select: none;
}

.risk-deviation-log__header:hover {
  background: var(--color-border-light);
}

.risk-deviation-log__title {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
}

.risk-deviation-log__badge {
  display: inline-block;
  background: var(--color-warning);
  color: #fff;
  font-size: 10px;
  font-weight: var(--weight-bold);
  border-radius: 10px;
  padding: 1px 6px;
  margin-left: var(--space-xs);
}

.risk-deviation-log__toggle {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.risk-deviation-log__body {
  padding: var(--space-sm) var(--space-md);
}

.risk-deviation-log__match {
  font-size: var(--text-xs);
  color: var(--color-primary);
  padding: var(--space-xs) 0;
}

/* --- Risk Deviation Table --- */
.risk-deviation-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-xs);
}

.risk-deviation-table th {
  text-align: left;
  padding: var(--space-xs) var(--space-sm);
  border-bottom: 2px solid var(--color-border);
  font-weight: var(--weight-semibold);
  color: var(--color-text-secondary);
  white-space: nowrap;
}

.risk-deviation-table td {
  padding: var(--space-xs) var(--space-sm);
  border-bottom: 1px solid var(--color-border-light);
  vertical-align: middle;
}

.risk-deviation-table__label {
  color: var(--color-text);
  white-space: nowrap;
}

.risk-deviation-table__default {
  color: var(--color-text-muted);
  white-space: nowrap;
}

.risk-deviation-table__chosen {
  font-weight: var(--weight-semibold);
  color: var(--color-warning);
  white-space: nowrap;
}

.risk-deviation-table__note {
  width: 100%;
}

.risk-deviation-table__note .form-input--sm {
  width: 100%;
  font-size: var(--text-xs);
}

/* --- Hero actions for NIS2 scope button --- */
.hero__combined-actions {
  padding: var(--space-md) var(--space-xl);
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
