/* Server Software Table */
.req-table tr {
    border-bottom: 1px solid #f1f5f9;
}
.req-table tr:last-child {
    border-bottom: none;
}
.req-table td {
    padding: 12px 0;
    vertical-align: middle;
    color: var(--text-main);
}
.req-table td:first-child {
    width: 40%;
    color: var(--text-muted);
}

/* Extension Grid */
.ext-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.ext-item {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #475569;
    display: flex;
    align-items: center;
}

.ext-item i {
    color: var(--accent);
    margin-right: 8px;
    font-size: 0.8rem;
}

/* Section Label (Global override if needed, or specific) */
.section-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    color: #94a3b8;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
}

/* Hardware Cards */
.hw-card {
    transition: transform 0.2s, box-shadow 0.2s;
    height: 100%;
}
.hw-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

/* Minimum Spec Styling */
.hw-card.min { border-top: 4px solid #f59e0b; }
.hw-card.min .hw-badge { background: #fffbeb; color: #b45309; border: 1px solid #fcd34d; }

/* Recommended Spec Styling */
.hw-card.rec { border-top: 4px solid #10b981; }
.hw-card.rec .hw-badge { background: #ecfdf5; color: #047857; border: 1px solid #6ee7b7; }

.hw-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    border-bottom: 1px dashed var(--border);
    padding-bottom: 15px;
}

.hw-header h4 {
    font-size: 1.1rem;
    margin: 0;
    font-weight: 700;
}

.hw-badge {
    font-size: 0.7rem;
    text-transform: uppercase;
    font-weight: 700;
    padding: 4px 8px;
    border-radius: 4px;
}

.hw-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.hw-list li {
    padding: 8px 0;
    display: flex;
    align-items: center;
    color: var(--text-muted);
}

.hw-list li i {
    width: 24px;
    color: #cbd5e1;
}

.hw-list li strong {
    color: var(--text-main);
    margin-right: 5px;
}

/* Browser Grid */
.browser-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.browser-item {
    background: #fff;
    border: 1px solid var(--border);
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.browser-item i {
    font-size: 2rem;
}

.browser-item span {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--text-main);
}

/* Alert Box */
.alert-box {
    background: #fff0f0;
    border-left: 4px solid #f87171;
    color: #991b1b;
    padding: 15px;
    border-radius: 4px;
    font-size: 0.9rem;
}
.alert-box i { margin-right: 5px; }