:root{
    --admin-primary:#0d6efd;
    --admin-accent: #ed9016;
    --admin-muted: #bcbbb9;
    --admin-bg:#f5f7fb;
    --admin-font:16px;
    --admin-nav-h:64px;
    --sidebar-overlap:8px;
    --sidebar-cut-w:25%;
    --header-pad-x: .75rem;
    --fab-offset: 3rem;
}
body{background:var(--admin-bg);font-size:var(--admin-font)}
.bg-gradient{background:radial-gradient(1200px 600px at 80% -10%,#cfe2ff,transparent),radial-gradient(1200px 600px at -20% 110%,#e2e3ff,transparent),#f8fafc}

/* Header */
.admin-navbar{background:radial-gradient(800px 200px at 10% -60%,rgba(255,255,255,.20),transparent),radial-gradient(1000px 260px at 90% -80%,rgba(255,255,255,.12),transparent),linear-gradient(135deg,#1e74ff,#0d5bff);color:#fff;position:relative;z-index:1020}
.admin-navbar .container-fluid{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:.6rem;min-height:var(--admin-nav-h);padding-top:2px;padding-bottom:4px}
@media (max-width:762px) {
    .navbar {
        padding-top: 0;
        padding-bottom: 0;
    }
}
@media (min-width:992px){
    .admin-navbar .container-fluid::before{content:"";position:absolute;left:0;bottom:-8px;width:var(--sidebar-cut-w);height:16px;background:var(--admin-bg);border-top-right-radius:12px;box-shadow:0 1px 0 rgba(0,0,0,.05);pointer-events:none}
    .navbar {
        padding-top: 2px;
        padding-bottom: 16px;
    }
}
@media (min-width:1200px){
    :root{--sidebar-cut-w:16.6667%}
}
.brand-wrap{display:flex;align-items:center;gap:.6rem;min-width:0;color:#fff;text-decoration:none;flex:1 1 auto}
.brand-logo{display:block;max-height:calc(var(--admin-nav-h) - 12px);width:auto;object-fit:contain;padding:4px 8px}
.brand-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}
.brand-texts{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.brand-title{font-weight:600;font-size:1.02rem;letter-spacing:.1px;line-height:1.25}
.brand-subtitle{font-size:.86rem;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16ch;line-height:1.25;padding-bottom:2px}
.user-chip{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:999px;padding:.42rem .7rem;display:inline-flex;align-items:center;white-space:nowrap}
.user-chip:hover,.user-chip:focus{background:rgba(255,255,255,.18);color:#fff}
.user-dd-header{background:var(--bs-light-bg-subtle);border-bottom:1px solid var(--bs-border-color-translucent)}
.user-dd-avatar{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);color:var(--admin-primary);font-size:.95rem}
@media (max-width:575.98px){
    :root{--admin-nav-h:60px}
    .brand-title{font-size:.95rem}
    .brand-subtitle{font-size:.78rem}
    .brand-logo{max-height:calc(var(--admin-nav-h) - 14px);padding:3px 6px}
    .user-chip{padding:.35rem .55rem}
}
.nav-icon-btn{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;outline:0;-webkit-tap-highlight-color:transparent;transition:background .2s,transform .1s,box-shadow .2s}
.nav-icon-btn i{font-size:1.05rem}
.nav-icon-btn:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.nav-icon-btn:active{transform:translateY(0)}
.nav-icon-btn:focus{outline:0}
.nav-icon-btn:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.35)}
.admin-navbar .navbar-brand,.admin-navbar .navbar-brand:focus,.admin-navbar .navbar-brand:hover{color:#fff;text-decoration:none}
.brand-wrap,.brand-wrap:focus,.brand-wrap:hover{color:#fff!important;text-decoration:none;background:transparent;filter:none}

/* Sidebar desktop */
.admin-sidebar{position:relative;z-index:1035;background:var(--admin-bg);margin-top:calc(0px - var(--sidebar-overlap))}
.admin-sidebar .sidebar-inner{padding-top:calc(var(--sidebar-overlap))}
.admin-sidebar .list-group-item{border:0;border-radius:0;padding:.85rem 1rem}
.admin-sidebar .list-group-item:first-child{border-top-left-radius:12px}

@media (min-width:992px){
    .admin-sidebar{min-height:calc(100vh - var(--admin-nav-h))}
}

@media (min-width:992px){
    .admin-navbar .container-fluid::before{display:none}
}

.admin-sidebar::before{
    content:"";
    position:absolute;
    top: calc(0px - var(--sidebar-overlap));
    left: calc(-1 * var(--header-pad-x));
    width: calc(100% + var(--header-pad-x));
    height: calc(var(--sidebar-overlap) + 12px);
    background: var(--admin-bg);
    border-top-right-radius: 12px;
    box-shadow: 0 1px 0 rgba(0,0,0,.05);
    pointer-events:none;
}

.admin-sidebar .sidebar-inner{
    padding-top: var(--sidebar-overlap);
}

.admin-sidebar .list-group-item:first-child{
    border-top-left-radius:0;
}


@media (max-width: 575.98px){
    .admin-container{padding-left:.25rem;padding-right:.25rem}
    .admin-row{--bs-gutter-x:.25rem}
    .admin-main{padding-left:0!important;padding-right:0!important}
}
.admin-sidebar a.bg-super-menu, .offcanvas a.bg-super-menu {
    background-color: #f3f3f8 !important;
    font-weight: 400;
}
.admin-sidebar a.bg-super-menu.active, .offcanvas a.bg-super-menu.active {
    background-color: #064098 !important;
    font-weight: 400;
}
.admin-sidebar a.bg-super-menu i, .offcanvas a.bg-super-menu i {
    color: var(--admin-accent);
    font-weight: 500;
}
.admin-sidebar a.bg-super-menu:before, .offcanvas a.bg-super-menu:before {
    content: "\f521";
    font: var(--fa-font-light);
    color: var(--admin-muted);
    position: absolute;
    top: 0;
    right: 0;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Dropdown */
.dropdown-menu{ z-index:2000; }
.dropdown-menu .dropdown-header{cursor:default}
.dropdown-menu .dropdown-header+li>.dropdown-item{padding-top:.65rem}

/* Content */
.card{border-radius:1rem}
.btn{border-radius:.7rem}

/* Modal */
.admin-modal{border:0;border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.18);overflow:hidden}
.admin-modal-header{background:linear-gradient(135deg,var(--admin-primary),#5a98ff);color:#fff;padding:1rem 1.25rem;border:0}

[data-modal-tone="primary"] .admin-modal-header{
    background:linear-gradient(135deg,var(--admin-primary),#5a98ff);
    color:#fff;
}

[data-modal-tone="success"] .admin-modal-header{
    background:linear-gradient(135deg,var(--admin-success, var(--bs-success)), #7ee39b);
    color:#fff;
}

[data-modal-tone="danger"] .admin-modal-header{
    background:linear-gradient(135deg,var(--admin-danger, var(--bs-danger)), #ff7a7a);
    color:#fff;
}

[data-modal-tone="warning"] .admin-modal-header{
    background:linear-gradient(135deg,var(--admin-warning, var(--bs-warning)), #ffd37a);
    color:#212529;
}

.admin-modal-icon{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);font-size:1.05rem}
.admin-modal-footer{background:#f8fafc;border-top:1px solid rgba(0,0,0,.05);padding:.85rem 1.25rem;box-shadow:0 -6px 16px rgba(0,0,0,.04)}
.admin-modal .form-control:focus{border-color:var(--admin-primary);box-shadow:0 0 0 .2rem rgba(13,110,253,.15)}
.admin-modal .js-modal-alert{border-radius:.65rem}
.admin-modal .invalid-feedback{margin-top:.35rem}
.admin-modal .btn{border-radius:.65rem}

/* Toast */
#adminToastStack{z-index:1085;--toast-safe: 0px;bottom: calc(var(--toast-safe) + env(safe-area-inset-bottom, 0px) + 16px);}
.admin-toast{border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);}
.admin-toast .toast-body{padding:.8rem 1rem}
.admin-toast-icon{display:inline-block;width:1.25rem;text-align:center}


/* CRUD Form */
.crudform .js-sa-menu{ z-index:1080 }
.crudset{border:0 solid #e9ecef;border-radius:14px;padding:4px;background:#fff}
.crudset+.crudset{margin-top:16px}
.crudset-legend{font-size:.95rem;font-weight:600;letter-spacing:.2px;margin:10px 0 0 0;padding:6px 12px;border-radius:8px;display:inline-flex;align-items:center;gap:.5rem;background:#f8f9fa;border:1px solid #edf0f3;color:#212529}
.crudset-legend i{font-size:.95rem;opacity:.9}
.crudset-subtitle{margin:2px 0 10px 0;font-size:.875rem;color:#6c757d}

.form-check.form-switch.m-0{min-height:0}
.form-label {
    font-size: .80rem;
    margin-bottom: 2px;
    margin-left: 4px;
    font-weight: 500;
}

.form-check-label {
    font-size: .95rem;
    margin-bottom: 0;
}

.form-control-plaintext {
    padding-left: 5px !important;
}

/* layout lado a lado do campo de arquivo */
.filefield { align-items: center; gap: 12px; }
.filefield .file-preview { flex: 0 0 auto; }

@media (min-width: 768px) {
    .filefield.flex-md-nowrap { flex-wrap: nowrap !important; }
    .filefield .form-control[type="file"] { width: auto; flex: 0 1 360px; }
}

@media (max-width: 767.98px) {
    .filefield .form-control[type="file"] { flex: 1 1 100%; }
}
.file-preview {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 88px; min-height: 56px; padding: 8px 10px;
    border: 1px dashed #e5e7eb; border-radius: 12px; background: #f8f9fa;
    overflow: hidden;
}
.file-thumb { max-height: 64px; max-width: 96px; object-fit: cover; border-radius: 10px; }
.file-audio { width: 260px; max-width: 100%; }
.file-video { width: 320px; max-width: 100%; border-radius: 8px; }
.file-generic { padding: 10px 12px; border-radius: 10px; background: #f1f3f5; border: 1px solid #e9ecef; text-decoration: none; color: #212529; }
.file-generic .file-ext { font-weight: 600; letter-spacing: .3px; }
.file-generic:hover { background: #e9ecef; }
@media (max-width: 767.98px) {
    .filefield { flex-direction: column; align-items: stretch; }
    .file-preview { width: 100%; max-width: 100%; overflow: hidden; }
    .file-video { display: block; width: 100%; height: auto; max-height: clamp(160px, 45vw, 320px); }
    .file-audio { width: 100%; }
    .file-thumb { width: 100%; height: auto; max-height: 220px; object-fit: cover; }
}

@media (min-width: 768px) {
    .filefield.flex-md-nowrap { flex-wrap: nowrap !important; }
    .file-preview { flex: 0 0 auto; }
    .file-video { width: 360px; max-width: 100%; height: auto; }
    .file-audio { width: 320px; max-width: 100%; }
}
.file-video { width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* zoom overlay */
.cf-zoom{position:fixed;inset:0;background:rgba(0,0,0,.65);display:none;align-items:center;justify-content:center;z-index:1060;backdrop-filter:blur(2px)}
.cf-zoom.open{display:flex}
.cf-zoom img{max-width:min(92vw,1200px);max-height:92vh;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.cf-zoom .cf-close{position:absolute;top:14px;right:14px;border:0;background:#0008;color:#fff;width:36px;height:36px;border-radius:999px;display:flex;align-items:center;justify-content:center}
.file-thumb{cursor:zoom-in}
body.overflow-hidden{overflow:hidden}

div.card-body:not(.card-default) {
    padding: 0 8px !important;
}
@media (max-width: 991px) {
    div.card-body:not(.card-default) {
        padding: 2px !important;
    }
}

.input-group .btn-eye {
    border-left: none;
    border-color: #ced4da;
    background-color: #fff;
}
.input-group .form-control:focus {
    z-index: 3;
}

/* Quill */
.ql-toolbar.ql-snow {
    background-color: #f8f9fa;
    border: 0;
    border-bottom: 1px solid #dee2e6;
    border-radius: 0.375rem 0.375rem 0 0;
}

.form-control .ql-container.ql-snow {
    border: 0;
    border-radius: 0 0 0.375rem 0.375rem;
}

.form-control .ql-container.ql-snow .ql-editor {
    min-height: 8rem;
    padding: .75rem .875rem;
}


/* Repeater reorder */
.repeater-item [data-role="dragcol"] .reorder-handle{
    height:100%;
    min-height:56px;
    cursor:grab;
    touch-action: none;
    user-select: none;
}
.repeater-item.dragging [data-role="dragcol"] .reorder-handle{
    cursor:grabbing;
}
.repeater-item [data-role="trashcol"] .btn{
    min-height:56px;
}
.repeater-item.dragging{
    outline:2px dashed var(--bs-secondary);
    outline-offset:-4px;
    background: rgba(0,0,0,.015);
    border-color: var(--bs-secondary) !important;
}
.repeater-items .repeater-item{
    transition: transform .08s ease, background-color .12s ease, outline-color .12s ease;
}
