/* Shared authenticated-application UI primitives for Dashboard and Admin. */
html[data-public-theme="dark"] :is(body.gl-dashboard-page, body.admin-shell) {
    --gl-text-primary:#fbf7ff;
    --gl-text-secondary:#e2d8ec;
    --gl-text-muted:#b5b5b5;
    --gl-text-disabled:#aa99bb;
    --gl-text-inverse:#fff;
    --gl-text-on-accent:#172033;
    --gl-control-bg:#2f2f2f;
    --gl-control-placeholder:#aa99bb;
    --gl-status-success:#86efac;
    --gl-status-danger:#fca5a5;
    --gl-status-warning:#fde68a;
    --gl-status-info:#93c5fd;
    --linkit-text-primary:var(--gl-text-primary);
    --linkit-text-secondary:var(--gl-text-secondary);
    --linkit-text-muted:var(--gl-text-muted);
    --linkit-text-disabled:var(--gl-text-disabled);
    --linkit-text-inverse:var(--gl-text-inverse);
    --linkit-text-on-accent:var(--gl-text-on-accent);
    --linkit-control-bg:var(--gl-control-bg);
    --linkit-control-placeholder:var(--gl-control-placeholder);
    color:var(--gl-text-primary);
}

html[data-public-theme="dark"] :is(body.gl-dashboard-page, body.admin-shell) .ui-toast,
html[data-public-theme="dark"] :is(body.gl-dashboard-page, body.admin-shell) .mobile-avatar-menu { background:var(--gl-surface-inset-bg); border-color:rgba(255,255,255,.13); }

:is(body.gl-dashboard-page, body.admin-shell) :where(input,textarea,select) { background:var(--gl-control-bg); color:var(--gl-text-primary); font-size:14px; }
:is(body.gl-dashboard-page, body.admin-shell) :where(input,textarea)::placeholder { color:var(--gl-control-placeholder); }
:is(body.gl-dashboard-page, body.admin-shell) :where(input,textarea,select):disabled { color:var(--gl-text-disabled); }
:is(body.gl-dashboard-page, body.admin-shell) .gl-text-muted { color:var(--gl-text-muted); }
:is(body.gl-dashboard-page, body.admin-shell) .gl-text-secondary { color:var(--gl-text-secondary); }
:is(body.gl-dashboard-page, body.admin-shell) .gl-text-dark { color:var(--gl-text-primary); }

/* Shared transient feedback primitives migrated from the former public monolith. */
.alert-wrapper{
    position:fixed;
    top:24px;
    right:auto;
    inset-inline-end:24px;
    z-index:9999;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.it-alert{
    min-width:260px;
    max-width:360px;
    padding:14px 18px;
    border-radius:14px;
    font-size:14px;
    font-weight:700;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
    transition:.3s ease;
}

.it-alert-success{
    background:#ecfdf5;
    color:#047857;
    border:1px solid #a7f3d0;
}

.it-alert-error{
    background:#fff1f2;
    color:#be123c;
    border:1px solid #fecdd3;
}

/* Shared application modal shell. */
:is(body.gl-dashboard-page, body.admin-shell) .gl-modal{
    position:fixed;
    inset:0;
    z-index:1050;
    display:none;
    overflow:auto;
    padding:1rem;
    background:rgba(0,0,0,.5);
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal.show{
    display:block;
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-dialog{
    width:min(100%,500px);
    margin:1.75rem auto;
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-dialog-centered{
    min-height:calc(100% - 3.5rem);
    display:flex;
    align-items:center;
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-content{
    width:100%;
    color:var(--gl-text-primary);
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-header,
:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-footer{
    display:flex;
    align-items:center;
    padding:1rem;
    border-color:var(--gl-border);
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-header{
    border-bottom:1px solid var(--gl-border);
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-footer{
    justify-content:flex-end;
    gap:.5rem;
    border-top:1px solid var(--gl-border);
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-title{
    margin:0;
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-body{
    padding:1rem;
}

:is(body.gl-dashboard-page, body.admin-shell) .gl-modal-header .gl-btn-close{
    margin-inline-start:auto;
}

/* Shared compact button geometry; canonical button visuals remain in buttons.css. */
.gl-btn-icon{width:44px;padding:.7rem}.gl-btn-text{min-height:auto;padding:.35rem .5rem;background:transparent;border-color:transparent;color:var(--primary-color)}.gl-btn-text:hover{color:var(--primary-hover)}
