/* Imperial Personnel Bureau additions. Deliberately follows the existing site palette. */
#maintext,
#maintext p,
#maintext div,
#maintext span,
#maintext label,
#maintext li,
#maintext td,
#maintext th,
#maintext input,
#maintext select,
#maintext textarea,
#maintext button {
    font-family: Arial, Helvetica, sans-serif;
}

#maintext,
#maintext p,
#maintext div,
#maintext span,
#maintext label,
#maintext li,
#maintext td {
    color: #919191;
    font-size: 12px;
    line-height: 140%;
}

#maintext h1 { color: #919191; }
#maintext h2 { color: #57a2ff; }
#maintext h3 { color: #ffffff; }

#maintext a {
    color: #57a2ff;
    text-decoration: none;
}
#maintext a:hover {
    color: #ffffff;
    text-decoration: underline;
}

.ipb-table {
    width: 100%;
    border-collapse: collapse;
    margin: 12px 0 18px;
    color: #c0c0c0;
}
.ipb-table th,
.ipb-table td {
    border-bottom: 1px solid #444;
    padding: 7px 6px;
    text-align: left;
    vertical-align: top;
    background: transparent;
}
.ipb-table th {
    color: #cccccc;
    font-weight: bold;
}
.ipb-table tr:hover td { background: #111111; }

.ipb-form label,
.ipb-label {
    display: inline-block;
    color: #d8d8d8;
    font-weight: bold;
    margin-bottom: 3px;
}
.ipb-form input[type="text"],
.ipb-form input[type="email"],
.ipb-form input[type="password"],
.ipb-form input[type="date"],
.ipb-form input[type="number"],
.ipb-form select,
.ipb-form textarea,
.ipb-control {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    color: #111111 !important;
    background: #f5f5f5;
    border: 1px solid #666666;
    padding: 4px 5px;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 12px;
}
.ipb-form input[type="checkbox"],
.ipb-form input[type="radio"] { width: auto; }
.ipb-form input[type="submit"],
.ipb-form button,
.ipb-button {
    width: auto;
    color: #ffffff !important;
    background: #2b4d6b;
    border: 1px solid #5d84a6;
    padding: 5px 10px;
    cursor: pointer;
    font-family: Arial, Helvetica, sans-serif !important;
}
.ipb-form input[type="submit"]:hover,
.ipb-form button:hover,
.ipb-button:hover { background: #3a668c; }
.ipb-button-danger { background: #652f2f; border-color: #955050; }

.ipb-section {
    clear: both;
    border-top: 1px solid #444444;
    margin-top: 18px;
    padding-top: 12px;
}
.ipb-section:first-of-type { margin-top: 8px; }
.ipb-notice {
    border: 1px solid #4d6680;
    background: #101923;
    padding: 8px 10px;
    margin: 10px 0;
}
.ipb-error {
    border-color: #8a4444;
    background: #241111;
    color: #dddddd !important;
}
.ipb-success {
    border-color: #4f7658;
    background: #102016;
}
.ipb-muted { color: #777777 !important; font-size: 11px !important; }
.ipb-message {
    border-bottom: 1px solid #333333;
    padding: 9px 0;
}
.ipb-message-meta { color: #777777 !important; font-size: 10px !important; }
.ipb-actions { margin: 12px 0; }
.ipb-actions form { display: inline-block; margin: 0 5px 5px 0; }
.ipb-grid-two { display: flex; gap: 14px; flex-wrap: wrap; }
.ipb-grid-two > div { flex: 1 1 220px; }
.ipb-status { color: #ffffff !important; font-weight: bold; }

/* Compact dashboard additions. */
.ipb-summary-table,
.ipb-dashboard-grid {
    border-collapse: collapse;
    margin: 8px 0 14px 0;
}

.ipb-summary-table td,
.ipb-dashboard-grid td {
    border: 1px solid #333333;
    background: #0b0b0b;
    color: #c0c0c0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
}

.ipb-table {
    border-collapse: collapse;
    margin: 8px 0 14px 0;
}

.ipb-table th,
.ipb-table td {
    border: 1px solid #333333;
    padding: 6px;
    color: #c0c0c0;
    background: #090909;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    text-align: left;
}

.ipb-table th {
    background: #1a1a1a;
    color: #ffffff;
}

/* Account administration and right-side context rail. */
#ipb-context-rail {
    float: right;
    width: 175px;
    max-width: 175px;
    margin: 32px 0 20px 10px;
    overflow: hidden;
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
}

.ipb-context-card {
    width: 100%;
    max-width: 175px;
    box-sizing: border-box;
    overflow: hidden;
    border: 1px solid #333;
    background: #090909;
    padding: 8px;
    color: #999;
    font-size: 11px;
}

.ipb-context-card h2 {
    color: #57a2ff;
    font-size: 12px;
    margin: 0 0 8px;
    border-bottom: 1px solid #333;
    padding-bottom: 4px;
}

.ipb-context-card h3 {
    color: #fff;
    font-size: 12px;
    margin: 7px 0 5px;
}

/* Fixed portrait frame for character and account context cards. */
.ipb-context-portrait,
#ipb-context-rail img,
.ipb-context-card img {
    display: block !important;
    width: 145px !important;
    max-width: 145px !important;
    height: 190px !important;
    max-height: 190px !important;
    margin: 7px auto !important;
    object-fit: cover;
    object-position: center top;
    overflow: hidden;
    border: 1px solid #555;
    background: #000;
    box-sizing: border-box;
}

/* Prevent linked content and controls from expanding the rail. */
#ipb-context-rail a,
#ipb-context-rail div,
#ipb-context-rail form,
#ipb-context-rail select {
    max-width: 100%;
    box-sizing: border-box;
}

#ipb-context-rail select {
    width: 100%;
}
.ipb-context-links { list-style:none; padding:0; margin:7px 0 0; }
.ipb-context-links li { border-top:1px solid #292929; padding:4px 0; }
.ipb-context-links a { color:#57a2ff; text-decoration:none; }
.ipb-context-links a:hover { color:#fff; }
.ipb-admin-tabs { background:#0b0b0b; border:1px solid #333; padding:7px; margin-bottom:14px; }
.ipb-role-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ipb-check-card { display:block; border:1px solid #333; background:#0b0b0b; padding:7px; color:#ccc!important; }
.ipb-check-card span { color:#888!important; font-size:11px!important; font-weight:normal; }
.ipb-permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.ipb-permission-group { border:1px solid #333; background:#0a0a0a; padding:8px; }
.ipb-permission-group h3 { margin-top:0; }
.ipb-permission-group label { display:block; border-bottom:1px solid #222; padding:4px 0; color:#ccc!important; font-weight:normal; }
@media (max-width:900px) {
    #ipb-context-rail {
        float: none;
        width: 175px;
        max-width: 175px;
        margin: 10px auto;
    }

    .ipb-role-grid,
    .ipb-permission-grid {
        grid-template-columns: 1fr;
    }
}


/* Character card polish */
#ipb-context-rail{
    text-align:center;
}
#ipb-context-rail select {
    width:145px;
    margin:0 auto 8px;
    display:block;
    background:#111111 !important;
    color:#ffffff !important;
    border:1px solid #555555;
    border-radius:0;
    padding:4px 26px 4px 6px;
    font-family:Arial,Helvetica,sans-serif;
    font-size:12px;
    font-weight:bold;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    background-image:
      linear-gradient(45deg, transparent 50%, #57a2ff 50%),
      linear-gradient(135deg, #57a2ff 50%, transparent 50%);
    background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;
    background-size:5px 5px,5px 5px;
    background-repeat:no-repeat;
}
#ipb-context-rail select:hover{border-color:#57a2ff;}
#ipb-context-rail select:focus{outline:none;border-color:#57a2ff;box-shadow:0 0 4px rgba(87,162,255,.45);}
#ipb-context-rail option{background:#111111;color:#ffffff;}

.ipb-context-card{text-align:center;}
.ipb-context-card p{margin:6px 0;}
.ipb-context-links{margin-top:12px;}

.ipb-context-title{
    color:#8d8d8d;
    text-transform:uppercase;
    font-size:10px;
    letter-spacing:1px;
    margin-top:6px;
}
.ipb-context-name{
    color:#fff;
    font-size:18px;
    font-weight:bold;
    line-height:1.15;
    margin:2px 0 10px;
}
.ipb-context-opnum{
    color:#57a2ff;
    font-weight:bold;
}
