/* =============================================================================
   MIRNINT DNS — PowerDNS-Admin (AdminLTE 4 / Bootstrap 5.3) modernization.
   CSS-only reskin via the custom_css hook. No markup/JS changes — all backend
   functionality, routes, forms and DNS operations preserved.
   Design: very dark, low-noise MIRNINT surfaces + restrained turquoise signal.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root, [data-bs-theme] {
  /* brand + accent (per design prompt) */
  --mi-brand:#56D6D2; --mi-brand-h:#3FC4C0; --mi-brand-subtle:rgba(86,214,210,.12);
  /* surface hierarchy */
  --mi-base:#0B0F12; --mi-sidebar:#090D10; --mi-header:#0D1216;
  --mi-content:#10161B; --mi-elev:#151C21; --mi-elev-h:#1b242b;
  /* lines + text */
  --mi-border:#1d262c; --mi-border-h:#29343c;
  --mi-text:#E9EEF0; --mi-text2:#AEB7BC; --mi-muted:#79828A;
  /* semantic */
  --mi-danger:#F0737A; --mi-warn:#E7B45C; --mi-ok:#5FD08F;
  --mi-radius:8px; --mi-radius-sm:6px;

  /* ---- drive Bootstrap 5 through the MIRNINT system (dark-first) ---- */
  --bs-primary:#56D6D2; --bs-primary-rgb:86,214,210;
  --bs-link-color:#56D6D2; --bs-link-hover-color:#8fe6e3; --bs-link-color-rgb:86,214,210;
  --bs-body-font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --bs-body-bg:var(--mi-content); --bs-body-bg-rgb:16,22,27;
  --bs-body-color:var(--mi-text2); --bs-body-color-rgb:174,183,188;
  --bs-emphasis-color:var(--mi-text); --bs-emphasis-color-rgb:233,238,240;
  --bs-secondary-color:var(--mi-muted); --bs-tertiary-color:var(--mi-muted);
  --bs-secondary-bg:var(--mi-sidebar); --bs-tertiary-bg:var(--mi-base);
  --bs-border-color:var(--mi-border); --bs-border-color-translucent:var(--mi-border);
  --bs-border-radius:var(--mi-radius); --bs-border-radius-sm:var(--mi-radius-sm);
  --bs-border-radius-lg:10px; --bs-border-radius-xl:12px;
  --bs-heading-color:var(--mi-text);
  color-scheme:dark;
}

/* ---- base canvas + typography ---------------------------------------- */
html,body{background:var(--mi-base)!important;}
body,.app-wrapper{font-family:var(--bs-body-font-family)!important;color:var(--mi-text2)!important;-webkit-font-smoothing:antialiased;}
.app-main{background:var(--mi-base)!important;}
.app-content, .content-wrapper{background:var(--mi-content)!important;}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3{color:var(--mi-text)!important;font-weight:600!important;letter-spacing:-.01em;}
h1,.h1{font-size:1.55rem!important;font-weight:700!important;}
.text-muted,.text-secondary,small,.small{color:var(--mi-muted)!important;}
a{color:var(--mi-brand);text-decoration:none;} a:hover{color:#8fe6e3;}
code,pre,.text-monospace,.font-monospace,td .mono,.serial{font-family:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace!important;}
*{ -webkit-tap-highlight-color:transparent; }

/* ---- SIDEBAR: one seamless near-black surface ------------------------- */
.app-sidebar,.app-sidebar.bg-body-secondary,.sidebar-wrapper,.sidebar-menu{
  background:var(--mi-sidebar)!important;background-image:none!important;box-shadow:none!important;
  border-right:1px solid var(--mi-border)!important;}
.app-sidebar{ --bs-emphasis-color:#fff; }
/* brand / logo — blend into the sidebar, no box */
.sidebar-brand,.app-sidebar .brand-link{
  background:var(--mi-sidebar)!important;border-bottom:1px solid var(--mi-border)!important;
  padding:16px 18px!important;display:flex;align-items:center;min-height:64px;}
.brand-link .brand-image{display:none!important;}
.brand-link .brand-text{display:none!important;}
.brand-link::before{content:"";display:inline-block;width:150px;height:34px;
  background:url('/static/custom/mirnint-logo.png') left center/contain no-repeat;}
/* section group labels */
.sidebar-menu .nav-header,.nav-header{
  color:var(--mi-muted)!important;text-transform:uppercase;letter-spacing:.13em;
  font-size:11px!important;font-weight:600!important;padding:18px 20px 8px!important;}
/* nav items */
.sidebar-menu .nav-item{margin:1px 10px;}
.sidebar-menu .nav-link{
  color:var(--mi-text2)!important;border-radius:var(--mi-radius-sm)!important;
  padding:9px 12px!important;font-size:14px;font-weight:500;display:flex;align-items:center;gap:.65rem;
  transition:background .15s ease,color .15s ease;}
.sidebar-menu .nav-link:hover{background:var(--mi-elev)!important;color:#fff!important;}
.sidebar-menu .nav-link.active{
  background:var(--mi-brand-subtle)!important;color:#fff!important;
  box-shadow:inset 3px 0 0 var(--mi-brand)!important;}
.sidebar-menu .nav-link .nav-icon{
  color:var(--mi-muted)!important;font-size:17px!important;width:1.35em;text-align:center;transition:color .15s;}
.sidebar-menu .nav-link:hover .nav-icon,.sidebar-menu .nav-link.active .nav-icon{color:var(--mi-brand)!important;}
.sidebar-menu .nav-treeview .nav-link{padding-left:2.6rem!important;font-size:13.5px;}
.nav-arrow{color:var(--mi-muted)!important;}

/* ---- TOP HEADER: clean dark shell ------------------------------------ */
.app-header,.app-header.navbar,.main-header{
  background:var(--mi-header)!important;border-bottom:1px solid var(--mi-border)!important;box-shadow:none!important;}
.app-header .nav-link{color:var(--mi-text2)!important;}
.app-header .nav-link:hover{color:var(--mi-brand)!important;}
.app-header .brand-image,.navbar-nav .user-image{border:1px solid var(--mi-border)!important;}

/* ---- PAGE HEADER ----------------------------------------------------- */
.content-header{padding:22px 0 6px!important;}
.content-header h1{font-size:1.5rem!important;margin:0!important;}
.content-header .breadcrumb{background:transparent!important;padding:4px 0 0!important;margin:0!important;font-size:12.5px;}
.breadcrumb-item,.breadcrumb-item a,.breadcrumb-item.active{color:var(--mi-muted)!important;}

/* ---- CARDS / SURFACES ------------------------------------------------ */
.card{
  background:var(--mi-elev)!important;border:1px solid var(--mi-border)!important;
  border-radius:var(--mi-radius)!important;box-shadow:none!important;color:var(--mi-text2)!important;}
.card-header{background:transparent!important;border-bottom:1px solid var(--mi-border)!important;color:var(--mi-text)!important;padding:.9rem 1.1rem;}
.card-title{font-weight:600!important;color:var(--mi-text)!important;font-size:1rem;}
.card-footer{background:transparent!important;border-top:1px solid var(--mi-border)!important;}
.card.card-outline.card-primary,.card.card-primary{border-top:2px solid var(--mi-brand)!important;}
.card-outline{--bs-card-border-color:var(--mi-border);}

/* small stat / info boxes if present */
.small-box,.info-box{background:var(--mi-elev)!important;border:1px solid var(--mi-border)!important;border-radius:var(--mi-radius)!important;color:var(--mi-text)!important;box-shadow:none!important;}
.small-box .icon>i,.info-box-icon{color:var(--mi-brand)!important;opacity:.55;}

/* ---- TABLES ---------------------------------------------------------- */
.table{--bs-table-bg:transparent;--bs-table-color:var(--mi-text2);color:var(--mi-text2)!important;margin-bottom:0;}
.table>thead th,.table thead th{
  color:var(--mi-muted)!important;border-bottom:1px solid var(--mi-border)!important;border-top:0!important;
  text-transform:uppercase;letter-spacing:.05em;font-size:11.5px!important;font-weight:600!important;padding:.7rem .9rem!important;background:transparent!important;}
.table>tbody>tr{border-color:var(--mi-border)!important;}
.table>tbody>tr>td,.table td,.table th{border-top:1px solid var(--mi-border)!important;border-bottom:0!important;
  padding:.8rem .9rem!important;vertical-align:middle;color:var(--mi-text)!important;}
.table-hover>tbody>tr:hover>*{background:var(--mi-elev-h)!important;color:#fff!important;--bs-table-accent-bg:transparent;}
.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:rgba(255,255,255,.015);}
/* zone name emphasis + serials mono */
.table td:first-child{font-weight:500;color:var(--mi-text)!important;}
.serial,td .text-monospace{font-family:'JetBrains Mono',monospace!important;color:var(--mi-text2)!important;}

/* ---- BADGES / STATUS ------------------------------------------------- */
.badge{border-radius:5px!important;font-weight:600;font-size:11px;padding:.34em .6em;letter-spacing:.02em;}
.badge.bg-primary,.badge.text-bg-primary{background:var(--mi-brand-subtle)!important;color:var(--mi-brand)!important;}
.badge.bg-success,.badge.text-bg-success{background:rgba(95,208,143,.14)!important;color:var(--mi-ok)!important;}
.badge.bg-danger,.badge.text-bg-danger{background:rgba(240,115,122,.14)!important;color:var(--mi-danger)!important;}
.badge.bg-secondary,.badge.text-bg-secondary{background:var(--mi-elev-h)!important;color:var(--mi-text2)!important;}
.badge.bg-warning,.badge.text-bg-warning{background:rgba(231,180,92,.14)!important;color:var(--mi-warn)!important;}

/* ---- BUTTONS: hierarchy --------------------------------------------- */
.btn{border-radius:var(--mi-radius-sm)!important;font-weight:600!important;font-size:13.5px;padding:.5rem .9rem;transition:.15s;}
.btn-primary{--bs-btn-bg:var(--mi-brand);--bs-btn-border-color:var(--mi-brand);--bs-btn-color:#04201f;
  --bs-btn-hover-bg:var(--mi-brand-h);--bs-btn-hover-border-color:var(--mi-brand-h);--bs-btn-hover-color:#04201f;
  --bs-btn-active-bg:var(--mi-brand-h);--bs-btn-focus-shadow-rgb:86,214,210;}
.btn-success{--bs-btn-bg:var(--mi-brand);--bs-btn-border-color:var(--mi-brand);--bs-btn-color:#04201f;--bs-btn-hover-bg:var(--mi-brand-h);--bs-btn-hover-border-color:var(--mi-brand-h);--bs-btn-hover-color:#04201f;}
.btn-secondary,.btn-default{--bs-btn-bg:var(--mi-elev);--bs-btn-border-color:var(--mi-border-h);--bs-btn-color:var(--mi-text);--bs-btn-hover-bg:var(--mi-elev-h);--bs-btn-hover-border-color:var(--mi-border-h);--bs-btn-hover-color:#fff;}
.btn-danger{--bs-btn-bg:transparent;--bs-btn-border-color:#8f4247;--bs-btn-color:var(--mi-danger);--bs-btn-hover-bg:rgba(240,115,122,.12);--bs-btn-hover-border-color:var(--mi-danger);--bs-btn-hover-color:#ffd7da;}
.btn-outline-primary{--bs-btn-color:var(--mi-brand);--bs-btn-border-color:var(--mi-brand);--bs-btn-hover-bg:var(--mi-brand);--bs-btn-hover-color:#04201f;}
.btn-light,.btn-outline-secondary{--bs-btn-color:var(--mi-text2);--bs-btn-border-color:var(--mi-border-h);--bs-btn-bg:transparent;--bs-btn-hover-bg:var(--mi-elev);--bs-btn-hover-color:#fff;}
/* icon-only / dropdown toggle actions — subtle, not a bright square */
.btn-app,.dropdown-toggle.btn-primary.btn-sm,.table .btn-group>.btn{--bs-btn-bg:var(--mi-elev)!important;--bs-btn-border-color:var(--mi-border-h)!important;--bs-btn-color:var(--mi-text2)!important;}

/* ---- FORMS ----------------------------------------------------------- */
.form-control,.form-select,.input-group-text,textarea,select,input:not([type=checkbox]):not([type=radio]){
  background:var(--mi-base)!important;border:1px solid var(--mi-border)!important;color:var(--mi-text)!important;
  border-radius:var(--mi-radius-sm)!important;min-height:42px;font-size:14px;}
textarea{min-height:auto;}
.form-control:focus,.form-select:focus{border-color:var(--mi-brand)!important;box-shadow:0 0 0 3px rgba(86,214,210,.20)!important;background:var(--mi-base)!important;color:#fff!important;}
.form-control::placeholder{color:#586169!important;}
.input-group-text{background:var(--mi-elev)!important;color:var(--mi-muted)!important;}
label,.col-form-label,.form-label{color:var(--mi-text2)!important;font-weight:500;font-size:13px;}
.form-text{color:var(--mi-muted)!important;}
.form-check-input:checked{background-color:var(--mi-brand)!important;border-color:var(--mi-brand)!important;}
.form-check-input:focus{border-color:var(--mi-brand)!important;box-shadow:0 0 0 3px rgba(86,214,210,.2)!important;}

/* ---- SEARCH (DataTables filter) ------------------------------------- */
.dataTables_filter{position:relative;}
.dataTables_filter label{color:var(--mi-muted)!important;font-size:0;}
.dataTables_filter input{padding-left:34px!important;min-width:240px;background:var(--mi-base)!important;}
.dataTables_filter label::before{content:"\f002";font-family:"Font Awesome 6 Free","Font Awesome 5 Free";font-weight:900;
  position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--mi-muted);font-size:13px;z-index:2;pointer-events:none;}
.dataTables_length select{background:var(--mi-base)!important;}
.dataTables_info{color:var(--mi-muted)!important;font-size:12.5px;}

/* ---- PAGINATION ------------------------------------------------------ */
.page-link{background:var(--mi-elev)!important;border:1px solid var(--mi-border)!important;color:var(--mi-text2)!important;border-radius:var(--mi-radius-sm)!important;margin:0 2px;padding:.4rem .7rem;font-size:13px;}
.page-link:hover{background:var(--mi-elev-h)!important;color:#fff!important;}
.page-item.active .page-link{background:var(--mi-brand)!important;border-color:var(--mi-brand)!important;color:#04201f!important;}
.page-item.disabled .page-link{background:transparent!important;color:#4a545b!important;}
.paginate_button{border-radius:var(--mi-radius-sm)!important;}

/* ---- DROPDOWNS / MENUS ---------------------------------------------- */
.dropdown-menu{background:var(--mi-elev)!important;border:1px solid var(--mi-border-h)!important;border-radius:var(--mi-radius)!important;box-shadow:0 12px 40px rgba(0,0,0,.55)!important;padding:.35rem;}
.dropdown-item{color:var(--mi-text2)!important;border-radius:var(--mi-radius-sm)!important;padding:.5rem .7rem;font-size:13.5px;}
.dropdown-item:hover,.dropdown-item:focus{background:var(--mi-brand-subtle)!important;color:#fff!important;}
.dropdown-item.text-danger:hover{background:rgba(240,115,122,.14)!important;color:#ffd7da!important;}
.dropdown-divider{border-color:var(--mi-border)!important;}
.dropdown-header{color:var(--mi-muted)!important;text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;}

/* ---- MODALS ---------------------------------------------------------- */
.modal-content{background:var(--mi-elev)!important;border:1px solid var(--mi-border-h)!important;border-radius:12px!important;color:var(--mi-text2)!important;box-shadow:0 24px 70px rgba(0,0,0,.6)!important;}
.modal-header,.modal-footer{border-color:var(--mi-border)!important;}
.modal-title{color:var(--mi-text)!important;font-weight:600;}
.btn-close{filter:invert(1) grayscale(1) brightness(1.4);opacity:.7;}

/* ---- ALERTS / TABS / MISC ------------------------------------------- */
.alert{border-radius:var(--mi-radius)!important;border:1px solid var(--mi-border)!important;}
.alert-success{background:rgba(95,208,143,.10)!important;color:#a7e6c4!important;border-color:rgba(95,208,143,.3)!important;}
.alert-danger{background:rgba(240,115,122,.10)!important;color:#f6b3b7!important;border-color:rgba(240,115,122,.3)!important;}
.alert-info{background:var(--mi-brand-subtle)!important;color:#a7ecea!important;border-color:rgba(86,214,210,.3)!important;}
.nav-tabs{border-bottom:1px solid var(--mi-border)!important;}
.nav-tabs .nav-link{color:var(--mi-muted)!important;border:0!important;font-weight:500;}
.nav-tabs .nav-link.active{background:transparent!important;color:var(--mi-brand)!important;box-shadow:inset 0 -2px 0 var(--mi-brand)!important;}
hr{border-color:var(--mi-border)!important;}
.list-group-item{background:var(--mi-elev)!important;color:var(--mi-text2)!important;border-color:var(--mi-border)!important;}
.select2-container--default .select2-selection{background:var(--mi-base)!important;border-color:var(--mi-border)!important;color:var(--mi-text)!important;}
.select2-dropdown{background:var(--mi-elev)!important;border-color:var(--mi-border-h)!important;}

/* ---- ACCESSIBILITY: visible focus ----------------------------------- */
a:focus-visible,.btn:focus-visible,.nav-link:focus-visible,.form-control:focus-visible,.page-link:focus-visible{
  outline:2px solid var(--mi-brand)!important;outline-offset:2px!important;}

/* ---- LOGIN — a MIRNINT product moment ------------------------------- */
body.login-page,.login-page{background:
  radial-gradient(1100px 560px at 18% -10%,rgba(86,214,210,.10),transparent 60%),var(--mi-base)!important;
  display:flex;align-items:center;justify-content:center;min-height:100vh;}
.login-box,.register-box{width:400px;max-width:92vw;margin:0!important;}
.login-box .card,.register-box .card{background:var(--mi-elev)!important;border:1px solid var(--mi-border-h)!important;border-radius:16px!important;box-shadow:0 28px 80px rgba(0,0,0,.6)!important;padding:32px 30px!important;}
.login-box .card-header,.login-logo{background:transparent!important;border:0!important;text-align:center;}
.login-box .card-header a,.login-logo a{font-size:0!important;text-decoration:none!important;display:block;}
.login-box .card-header a::before,.login-logo a::before{content:"";display:block;width:74px;height:74px;margin:2px auto 16px;background:url('/static/custom/mirnint-icon.png') center/contain no-repeat;}
.login-box .card-header a::after,.login-logo a::after{content:"Mirnint DNS";display:block;font-size:22px;font-weight:700;color:var(--mi-text);letter-spacing:-.01em;}
.login-box .login-card-body{background:transparent!important;padding-top:22px!important;}
.login-box a.btn-warning{display:flex!important;align-items:center;justify-content:center;width:100%;background:var(--mi-brand)!important;border:0!important;border-radius:10px!important;padding:14px!important;color:#04201f!important;font-size:0!important;}
.login-box a.btn-warning:hover{background:var(--mi-brand-h)!important;}
.login-box a.btn-warning i{display:none!important;}
.login-box a.btn-warning::before{content:"";display:inline-block;width:20px;height:20px;margin-right:10px;background:url('/static/custom/mirnint-icon.png') center/contain no-repeat;}
.login-box a.btn-warning::after{content:"Sign in with Mirnint";font-size:15px;font-weight:700;color:#04201f;font-family:'Inter',sans-serif;}

/* ---- remove third-party credit + interaction polish ----------------- */
footer.app-footer,.main-footer{display:none!important;}
.login-page p:has(a[href*="powerdnsadmin"]),.login-page p:has(a[href*="PowerDNS"]){display:none!important;}
.card,.btn,.nav-link,.page-link,.dropdown-item,.form-control{transition:background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
