/* Shared UI components and utility overrides */

.table tbody td:first-child{padding-left:1.25rem}
.table tbody td:last-child{padding-right:1.25rem}
.table tbody tr:last-child td{border-bottom:none}
.table-sticky thead th{position:sticky;top:0;z-index:10;box-shadow:0 1px 0 #333}
.table-sortable thead th{cursor:pointer;user-select:none;transition:background-color .3s ease}
.table-sortable thead th:hover{background-color:#1a1a1a}
.table-sortable thead th::after{content:"";display:inline-block;width:0;height:0;margin-left:.5rem;vertical-align:middle;opacity:.3}
.table-sortable thead th.sort-asc::after{opacity:1;border-left:4px solid rgba(0,0,0,0);border-right:4px solid rgba(0,0,0,0);border-bottom:5px solid #d9a182}
.table-sortable thead th.sort-desc::after{opacity:1;border-left:4px solid rgba(0,0,0,0);border-right:4px solid rgba(0,0,0,0);border-top:5px solid #d9a182}
.table-compact thead th{padding:.5rem .75rem}
.table-compact tbody td{padding:.5rem .75rem}
.table-card{background:#1a1a1a;border-radius:.75rem;border:1px solid #333;overflow:hidden}
.table-card .table{margin-bottom:0}
.table-card thead th{background-color:#222;border-top:none}
.table-card thead th:first-child{border-top-left-radius:.75rem}
.table-card thead th:last-child{border-top-right-radius:.75rem}
.list-group{--step-size: 2.5rem;--step-gap: 1rem}
.list-group-item{transition:background-color .3s ease}
.list-group-item:hover{background-color:#222}
.list-group-steps{counter-reset:step-counter;list-style:none;padding:0}
.list-group-steps .list-group-item{display:flex;align-items:flex-start;padding:1rem 0;border:none;background:rgba(0,0,0,0);position:relative}
.list-group-steps .list-group-item:not(:last-child)::before{content:"";position:absolute;left:calc(var(--step-size)/2 - 1px);top:calc(var(--step-size) + .5rem);bottom:-0.5rem;width:2px;background-color:#333}
.list-group-steps .list-group-item:hover{background:rgba(0,0,0,0)}
.list-group-steps .step-number{flex-shrink:0;width:40px !important;height:40px !important;min-width:40px !important;min-height:40px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;border-radius:50% !important;font-weight:600 !important;font-size:.9375rem !important;line-height:1 !important;margin-right:1rem;background-color:#222;color:#ccc;transition:all .3s ease}
.list-group-steps .step-content{flex:1;padding-top:.25rem}
.list-group-steps .step-content .step-title{font-weight:500;color:#fff;margin-bottom:.25rem}
.list-group-steps .step-content .step-description{font-size:.875rem;color:#ccc;margin:0}
.list-group-steps .list-group-item.completed .step-number{background-color:#4a7c59;color:#fff}
.list-group-steps .list-group-item.completed::before{background-color:#4a7c59}
.list-group-steps .list-group-item.active .step-number{background-color:#d9a182;color:#fff;box-shadow:0 0 0 4px rgba(217,161,130,.2)}
.list-group-steps .step-number.bg-primary{background-color:#d9a182 !important;color:#fff !important}
.list-group-steps .step-number.bg-success{background-color:#4a7c59 !important;color:#fff !important}
.list-group-steps .step-number.bg-warning{background-color:#7c6a4a !important;color:#fff !important}
.list-group-steps .step-number.bg-info{background-color:#4a6a7c !important;color:#fff !important}
.list-group-steps .step-number.bg-danger{background-color:#7c4a4a !important;color:#fff !important}
.list-group-icons .list-group-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:none;border-radius:.5rem}
.list-group-icons .list-group-item:not(:last-child){margin-bottom:.25rem}
.list-group-icons .list-icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.5rem;background-color:#222;color:#ccc;font-size:.875rem}
.list-group-icons .list-icon-primary{background-color:rgba(217,161,130,.15);color:#d9a182}
.list-group-icons .list-icon-success{background-color:rgba(163,217,165,.15);color:#a3d9a5}
.list-group-icons .list-icon-warning{background-color:rgba(245,217,165,.15);color:#f5d9a5}
.list-group-icons .list-icon-info{background-color:rgba(165,201,245,.15);color:#a5c9f5}
.list-group-steps-horizontal{display:flex;justify-content:space-between;padding:0;list-style:none}
.list-group-steps-horizontal .list-group-item{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0;border:none;background:rgba(0,0,0,0);position:relative}
.list-group-steps-horizontal .list-group-item:not(:last-child)::after{content:"";position:absolute;top:calc(var(--step-size)/2 - 1px);left:calc(50% + var(--step-size)/2 + .5rem);right:calc(-50% + var(--step-size)/2 + .5rem);height:2px;background-color:#333}
.list-group-steps-horizontal .list-group-item:hover{background:rgba(0,0,0,0)}
.list-group-steps-horizontal .step-number{width:var(--step-size);height:var(--step-size);display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:600;font-size:.875rem;background-color:#222;color:#ccc;margin-bottom:.5rem;position:relative;z-index:1}
.list-group-steps-horizontal .step-label{font-size:.8125rem;color:#ccc}
.list-group-steps-horizontal .list-group-item.completed .step-number{background-color:#4a7c59;color:#fff}
.list-group-steps-horizontal .list-group-item.completed::after{background-color:#4a7c59}
.list-group-steps-horizontal .list-group-item.completed .step-label{color:#a3d9a5}
.list-group-steps-horizontal .list-group-item.active .step-number{background-color:#d9a182;color:#fff}
.list-group-steps-horizontal .list-group-item.active .step-label{color:#d9a182;font-weight:500}
.dropdown-menu{animation:dropdownFadeIn .15s ease;z-index:1050}
@keyframes dropdownFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.dropdown-item{transition:background-color .15s ease;border-radius:.375rem;margin:0 .25rem;width:calc(100% - .5rem)}
.modal.fade .modal-dialog{transform:scale(0.95)}
.modal.show .modal-dialog{transform:scale(1)}
.modal-content{border:1px solid #333}
.progress{height:.5rem;border-radius:50rem}
.progress-bar{border-radius:50rem;transition:width .4s ease}
.page-link{border-radius:.375rem;margin:0 .125rem;transition:all .3s ease}
.page-link:hover{transform:translateY(-1px)}
.page-item.active .page-link{box-shadow:0 2px 4px rgba(217,161,130,.3)}
.bg-gradient-primary{background:linear-gradient(135deg, #d9a182, #b8865e)}
.bg-gradient-warm{background:linear-gradient(135deg, #d9a182, #b8865e)}
.text-gradient-primary{background:linear-gradient(135deg, #ffffff, #d9a182);-webkit-background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);background-clip:text}
.hover-shadow{transition:box-shadow .3s ease}
.hover-shadow:hover{box-shadow:0 10px 30px rgba(0,0,0,.5)}
.smooth-scroll{scroll-behavior:smooth}
.bg-surface-700{background-color:#1a1a1a}
.bg-surface-600{background-color:#222}
.bg-dark-900{background-color:#0a0a0a}
.bg-dark-800{background-color:#111}
.text-copper{color:#d9a182}
.text-muted-dark{color:#888}
.border-dark{border-color:#333 !important}
.error-page{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;padding:50px 20px;text-align:center;background-color:#0a0a0a;color:#fff;min-height:100vh;display:flex;align-items:center;justify-content:center}
.error-page__box{max-width:500px;margin:0 auto;padding:40px;background:linear-gradient(135deg, #1a1a1a, #222222);border:1px solid #333;border-radius:.75rem;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.error-page__heading{color:#f5a5a5;font-size:24px;font-weight:600;margin-bottom:16px}
.error-page__heading--large{font-size:48px;color:#fff;margin:0 0 20px 0}
.error-page__text{color:#ccc;line-height:1.6;margin-bottom:12px}
.error-page__text--large{font-size:18px;margin:0 0 30px 0}
.error-page__plan-info{background:#2a241a;border:1px solid #7c6a4a;padding:12px;border-radius:.5rem;margin:24px 0;color:#f5d9a5}
.error-page__cta{margin-top:32px}
.error-page__link{display:inline-block;padding:12px 24px;background:linear-gradient(135deg, #d9a182, #b8865e);color:#fff;text-decoration:none;border-radius:.5rem;font-weight:500;transition:all .3s ease}
.error-page__link:hover{color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 30px rgba(217,161,130,.3)}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid #fff;border-radius:50%;border-top-color:rgba(0,0,0,0);animation:spin 1s linear infinite;margin-right:8px}
.navbar.border-bottom{border-color:#1a1a1a !important}
.footer-dark{background-color:#111;border-color:#1a1a1a !important;color:#666}
.footer-dark a{color:#666}
.footer-dark a:hover{color:#d9a182}
.badge-env{background-color:#222;color:#ccc}
