

:root {
    --licensing-space-1: 4px;
    --licensing-space-2: 8px;
    --licensing-space-3: 12px;
    --licensing-space-4: 16px;
    --licensing-space-5: 24px;
    --licensing-space-6: 32px;
    --licensing-space-7: 48px;

    --licensing-primary: #2f3a4d;
    --licensing-primary-hover: #232b39;
    --licensing-accent: #c17f2e;
    --licensing-success: #2f9e6e;
    --licensing-warning: #d9922c;
    --licensing-danger: #c94f4f;
    --licensing-info: #4f7ea8;
    --licensing-neutral: #667085;

    --licensing-ink: #1c2128;
    --licensing-muted: #667085;
    --licensing-border: #dfe3e8;
    --licensing-bg: #ffffff;
    --licensing-bg-tint: #f6f7f9;

    --licensing-radius: 8px;
    --licensing-radius-lg: 12px;
    --licensing-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --licensing-shadow: 0 1px 3px rgba(28, 33, 40, .07);
}

.licensing {
    font-family: var(--licensing-font);
    color: var(--licensing-ink);
    line-height: 1.5;
}

.licensing *, .licensing *::before, .licensing *::after { box-sizing: border-box; }

.licensing-card {
    background: var(--licensing-bg);
    border: 1px solid var(--licensing-border);
    border-radius: var(--licensing-radius-lg);
    box-shadow: var(--licensing-shadow);
    padding: var(--licensing-space-5);
    margin-bottom: var(--licensing-space-5);
}

.licensing-card__header {
    display: flex;
    align-items: center;
    gap: var(--licensing-space-3);
    margin: calc(var(--licensing-space-5) * -1) calc(var(--licensing-space-5) * -1) var(--licensing-space-5);
    padding: var(--licensing-space-4) var(--licensing-space-5);
    border-radius: var(--licensing-radius-lg) var(--licensing-radius-lg) 0 0;
    background: var(--licensing-primary);
    color: #fff;
}

.licensing-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: rgba(255, 255, 255, .2);
    color: #fff;
}

.licensing-card__title { font-size: 1.05rem; font-weight: 700; margin: 0; color: #fff; }

.licensing-layout { display: grid; grid-template-columns: 2fr 1fr; gap: var(--licensing-space-6); align-items: start; }
@media (max-width: 900px) { .licensing-layout { grid-template-columns: 1fr; } }

.licensing-form-row { display: flex; flex-wrap: wrap; gap: var(--licensing-space-2) var(--licensing-space-4); align-items: flex-start; margin-bottom: var(--licensing-space-4); }
.licensing-label { flex: 0 0 160px; font-weight: 600; padding-top: var(--licensing-space-2); }
.licensing-field { flex: 1 1 260px; min-width: 200px; }

.licensing-input, .licensing-select, .licensing-textarea {
    width: 100%;
    font-family: inherit;
    font-size: .95rem;
    color: var(--licensing-ink);
    background: var(--licensing-bg);
    border: 1px solid var(--licensing-border);
    border-radius: var(--licensing-radius);
    padding: 10px var(--licensing-space-3);
    box-shadow: inset 0 1px 2px rgba(28, 33, 40, .04);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.licensing-input:hover, .licensing-select:hover, .licensing-textarea:hover { border-color: #c7ccd9; }

.licensing-input:focus, .licensing-select:focus, .licensing-textarea:focus {
    outline: none;
    border-color: var(--licensing-primary);
    box-shadow: 0 0 0 3px rgba(47, 58, 77, .16);
}

.licensing-input:disabled, .licensing-textarea:disabled { background: var(--licensing-bg-tint); color: var(--licensing-muted); box-shadow: none; }
.licensing-textarea { resize: vertical; min-height: 4em; line-height: 1.5; }
.licensing-form-actions { display: flex; gap: var(--licensing-space-3); margin-top: var(--licensing-space-5); flex-wrap: wrap; }

.licensing-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--licensing-space-2);
    font-family: inherit;
    font-size: .95rem;
    font-weight: 600;
    padding: var(--licensing-space-2) var(--licensing-space-4);
    border-radius: var(--licensing-radius);
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    background: var(--licensing-bg-tint);
    color: var(--licensing-ink);
    transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}

.licensing-btn:hover, .licensing-btn:focus, .licensing-btn:active { text-decoration: none; }
.licensing-btn:hover { filter: brightness(.97); transform: translateY(-1px); box-shadow: 0 3px 10px rgba(28, 33, 40, .12); }
.licensing-btn:active { transform: translateY(0); box-shadow: none; }
.licensing-btn:focus-visible { outline: 2px solid var(--licensing-primary); outline-offset: 2px; }
.licensing-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

.licensing-btn--primary { background: var(--licensing-primary); border-color: transparent; color: #fff; }
.licensing-btn--danger { background: var(--licensing-danger); border-color: var(--licensing-danger); color: #fff; }
.licensing-btn--secondary { background: var(--licensing-bg); border-color: var(--licensing-border); color: var(--licensing-ink); }
.licensing-btn--sm { padding: var(--licensing-space-1) var(--licensing-space-3); font-size: .85rem; }
.licensing-btn--block { width: 100%; }

.licensing-btn .licensing-spinner { display: none; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, .5); border-top-color: #fff; border-radius: 50%; animation: licensing-spin .6s linear infinite; }
.licensing-btn.licensing-busy .licensing-spinner { display: inline-block; }
.licensing-btn.licensing-busy .licensing-btn__label { opacity: .75; }
@keyframes licensing-spin { to { transform: rotate(360deg); } }

.licensing-alert { display: block; padding: var(--licensing-space-3) var(--licensing-space-4); border-radius: var(--licensing-radius); border: 1px solid transparent; margin-bottom: var(--licensing-space-4); }
.licensing-alert--info { background: #eceef2; border-color: #d7dbe3; color: var(--licensing-primary); }

.licensing-download-alert { display: flex; align-items: flex-start; gap: var(--licensing-space-4); text-align: left; }
.licensing-download-alert__icon {
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    background: var(--licensing-accent);
    color: #fff;
    box-shadow: 0 4px 10px rgba(193, 127, 46, .35);
}
.licensing-download-alert__body { flex: 1 1 auto; min-width: 0; }
.licensing-alert--success { background: #e7f3ee; border-color: #c7e3d7; color: #1f5c44; }
.licensing-alert--warning { background: #fdf1e2; border-color: #f3d9ad; color: var(--licensing-warning); }
.licensing-alert--danger { background: #fbeceb; border-color: #f0c9c7; color: var(--licensing-danger); }

.licensing-badge { display: inline-block; padding: 2px var(--licensing-space-3); border-radius: 999px; font-size: .8rem; font-weight: 600; background: #eef0f3; color: var(--licensing-neutral); }
.licensing-badge--active { background: #e7f3ee; color: var(--licensing-success); }
.licensing-badge--reissued { background: #f7ecdc; color: var(--licensing-accent); }
.licensing-badge--suspended { background: #fdf1e2; color: var(--licensing-warning); }
.licensing-badge--expired { background: #fbeceb; color: var(--licensing-danger); }

.licensing-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--licensing-space-4); margin-bottom: var(--licensing-space-5); }
.licensing-stat-card {
    display: flex;
    align-items: center;
    gap: var(--licensing-space-3);
    background: var(--licensing-bg);
    border: 1px solid var(--licensing-border);
    border-radius: var(--licensing-radius-lg);
    box-shadow: var(--licensing-shadow);
    padding: var(--licensing-space-4);
    transition: transform .15s ease, box-shadow .15s ease;
}
.licensing-stat-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(28, 33, 40, .1); }
.licensing-stat-card__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    font-size: 15px;
    background: var(--licensing-bg-tint);
    color: var(--licensing-neutral);
}
.licensing-stat-card__body { min-width: 0; }
.licensing-stat-card__label { font-size: .8rem; color: var(--licensing-muted); margin: 0 0 2px; }
.licensing-stat-card__value { font-size: 1.1rem; font-weight: 700; margin: 0; overflow-wrap: break-word; }

.licensing-stat-card--primary .licensing-stat-card__icon { background: #eceef2; color: var(--licensing-primary); }
.licensing-stat-card--accent .licensing-stat-card__icon { background: #f7ecdc; color: var(--licensing-accent); }
.licensing-stat-card--success .licensing-stat-card__icon { background: #e7f3ee; color: var(--licensing-success); }
.licensing-stat-card--warning .licensing-stat-card__icon { background: #fdf1e2; color: var(--licensing-warning); }
.licensing-stat-card--info .licensing-stat-card__icon { background: #eaf1f7; color: var(--licensing-info); }

.licensing-table-wrap { overflow-x: auto; border: 1px solid var(--licensing-border); border-radius: var(--licensing-radius-lg); margin-bottom: var(--licensing-space-5); }
.licensing-table-wrap table { width: 100%; border-collapse: collapse; }
.licensing-table-wrap th, .licensing-table-wrap td { padding: var(--licensing-space-3) var(--licensing-space-4); text-align: left; border-bottom: 1px solid var(--licensing-border); }
.licensing-table-wrap th { background: var(--licensing-bg-tint); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--licensing-muted); }

.licensing-muted { color: var(--licensing-muted); }
.licensing-text-center { text-align: center; }
.licensing-text-right { text-align: right; }
.licensing-mb-0 { margin-bottom: 0; }
.licensing-reissue-standalone { margin-top: var(--licensing-space-4); }

.licensing-downloadlog { margin-top: var(--licensing-space-5); }

.licensing-table-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--licensing-space-3); margin-bottom: var(--licensing-space-3); }

.licensing-table-search { position: relative; width: 100%; max-width: 240px; }
.licensing-table-search .fas { position: absolute; top: 50%; left: 12px; transform: translateY(-50%); color: var(--licensing-muted); font-size: 12px; pointer-events: none; }
.licensing-table-search input {
    width: 100%;
    padding: 7px 12px 7px 30px;
    border: 1px solid var(--licensing-border);
    border-radius: var(--licensing-radius);
    font-size: .85rem;
    background: var(--licensing-bg);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.licensing-table-search input:focus { outline: none; border-color: var(--licensing-primary); box-shadow: 0 0 0 3px rgba(47, 58, 77, .16); }

.licensing-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--licensing-space-3); }
.licensing-pagination .licensing-btn[disabled] { opacity: .45; cursor: not-allowed; }

.licensing-message { margin: 0; padding: 0 var(--licensing-space-4); max-height: 0; overflow: hidden; box-sizing: border-box; border-left: 4px solid transparent; border-radius: var(--licensing-radius); transition: max-height .2s ease, padding .2s ease, margin .2s ease, border-color .15s ease, background-color .15s ease; }
.licensing-message:not(:empty) { margin: 0 0 var(--licensing-space-4); padding: var(--licensing-space-3) var(--licensing-space-4); max-height: 200px; display: flex; align-items: center; gap: var(--licensing-space-2); }
.licensing-message i { flex: 0 0 auto; font-size: 1.05em; }
.licensing-message--success:not(:empty) { background: #e7f3ee; border-color: #c7e3d7; border-left-color: var(--licensing-success); color: #1f5c44; }
.licensing-message--danger:not(:empty) { background: #fbeceb; border-color: #f0c9c7; border-left-color: var(--licensing-danger); color: #7a2e2e; }

.licensing-modal-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(28, 33, 40, .55);
    z-index: 10500;
    align-items: center;
    justify-content: center;
    padding: var(--licensing-space-4);
}
.licensing-modal-overlay.licensing-modal-open { display: flex; }
.licensing-modal-box {
    background: var(--licensing-bg);
    border-radius: var(--licensing-radius-lg);
    width: 100%;
    max-width: 420px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .28);
}
.licensing-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--licensing-space-4);
    border-bottom: 1px solid var(--licensing-border);
}
.licensing-modal-title { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--licensing-ink); }
.licensing-modal-close {
    background: none;
    border: none;
    font-size: 22px;
    line-height: 1;
    color: var(--licensing-muted);
    cursor: pointer;
    padding: 0;
}
.licensing-modal-close:hover, .licensing-modal-close:focus { color: var(--licensing-ink); }
.licensing-modal-body { padding: var(--licensing-space-4); color: var(--licensing-ink); }
.licensing-modal-body p { margin: 0; }
.licensing-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--licensing-space-2);
    padding: var(--licensing-space-3) var(--licensing-space-4);
    border-top: 1px solid var(--licensing-border);
}
