/* ISP360 PREMIUM UI V15
   Cross-module consistency + high-contrast KPI/table polish.
   Presentation only. No API, billing, RADIUS, provisioning or auth logic is changed. */

:root{
  --p15-ink:#152b43;
  --p15-muted:#60758a;
  --p15-border:#dbe5ef;
  --p15-soft:#f5f8fc;
}

/* ---------- Shared live-page hero ---------- */
.p15-hero{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  min-height:116px!important;
  margin-bottom:18px!important;
  padding:22px 25px!important;
  border:1px solid rgba(71,112,166,.48)!important;
  border-radius:18px!important;
  color:#fff!important;
  background:
    radial-gradient(circle at 88% 16%,rgba(59,130,246,.30),transparent 25%),
    radial-gradient(circle at 72% 120%,rgba(14,165,233,.12),transparent 31%),
    linear-gradient(135deg,#071426 0%,#10294a 58%,#18427e 100%)!important;
  box-shadow:0 16px 36px rgba(15,35,68,.16)!important;
}
.p15-hero:after{
  content:"";
  position:absolute;
  z-index:-1;
  width:250px;
  height:250px;
  right:-55px;
  top:-150px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:0 0 0 38px rgba(255,255,255,.025),0 0 0 76px rgba(255,255,255,.014);
  pointer-events:none;
}
.p15-hero h1,
.p15-hero .p13-page-title{
  color:#fff!important;
  font-size:30px!important;
  font-weight:850!important;
  letter-spacing:-.8px!important;
  line-height:1.14!important;
  margin-top:0!important;
}
.p15-hero p,
.p15-hero .sub,
.p15-hero .muted{
  color:#c8d8e8!important;
  font-size:12.5px!important;
  line-height:1.55!important;
}
.p15-hero .p13-title-icon{
  background:linear-gradient(145deg,#143768,#2467c5)!important;
  border-color:rgba(255,255,255,.20)!important;
  box-shadow:0 9px 22px rgba(37,99,235,.26),inset 0 1px 0 rgba(255,255,255,.20)!important;
}
.p15-hero .p13-page-title:after{
  background:linear-gradient(90deg,#60a5fa,#38bdf8,#efc56d)!important;
}
.p15-hero button,
.p15-hero .btn,
.p15-hero a.button{
  min-height:41px!important;
  border-radius:10px!important;
}
.p15-hero .p13-primary-action,
.p15-hero .btn{
  color:#fff!important;
  background:linear-gradient(135deg,#2563eb,#1d4ed8 62%,#0ea5e9)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 9px 20px rgba(20,80,190,.27)!important;
}

/* ---------- KPI / summary grids ---------- */
.p15-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(185px,1fr))!important;
  gap:14px!important;
  margin-bottom:19px!important;
}
.p15-summary-card{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  min-height:108px!important;
  padding:18px 20px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:15px!important;
  color:#fff!important;
  background:linear-gradient(135deg,#164eaa 0%,#2563eb 58%,#0ea5e9 100%)!important;
  box-shadow:0 12px 27px rgba(15,35,68,.14)!important;
}
.p15-summary-card:nth-child(4n+2){
  background:linear-gradient(135deg,#07584f 0%,#087f73 58%,#15a38f 100%)!important;
}
.p15-summary-card:nth-child(4n+3){
  background:linear-gradient(135deg,#3e327d 0%,#6252ad 58%,#7c6bc2 100%)!important;
}
.p15-summary-card:nth-child(4n+4){
  background:linear-gradient(135deg,#77480d 0%,#a96b18 58%,#d99a37 100%)!important;
}
.p15-summary-card:before{
  content:"";
  position:absolute;
  right:18px;
  top:16px;
  width:30px;
  height:30px;
  z-index:-1;
  border-radius:10px;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.p15-summary-card:after{
  content:"";
  position:absolute!important;
  z-index:-1!important;
  width:105px!important;
  height:105px!important;
  right:-31px!important;
  bottom:-47px!important;
  border:20px solid rgba(255,255,255,.07)!important;
  border-radius:50%!important;
  pointer-events:none!important;
}
.p15-summary-card :is(.card-title,.card-label,.label,.kpi-label,.stat-label,.metric-label){
  position:relative!important;
  z-index:1!important;
  color:#eaf3ff!important;
  font-size:10px!important;
  font-weight:850!important;
  letter-spacing:1.05px!important;
  line-height:1.35!important;
  text-transform:uppercase;
  text-shadow:0 1px 1px rgba(0,0,0,.08);
}
.p15-summary-card :is(.card-value,.value,.kpi-value,.stat-value,.metric-value){
  position:relative!important;
  z-index:1!important;
  color:#fff!important;
  margin-top:9px!important;
  font-size:29px!important;
  font-weight:850!important;
  line-height:1.2!important;
  letter-spacing:-.7px!important;
  font-variant-numeric:tabular-nums;
  text-shadow:0 2px 4px rgba(0,0,0,.12);
}
.p15-summary-card :is(small,.muted){
  position:relative!important;
  z-index:1!important;
  color:#d5e4f2!important;
}

/* ---------- Panels / tables ---------- */
.p15-table-panel,
.main .table-box{
  border:1px solid var(--p15-border)!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 9px 25px rgba(15,23,42,.05)!important;
}
.p15-panel-head,
.main .table-header,
.main .tools{
  min-height:61px!important;
  padding:15px 18px!important;
  border-bottom:1px solid #e8eef4!important;
  background:linear-gradient(180deg,#fff,#fbfdff)!important;
}
.p15-panel-head :is(h2,h3),
.main .table-header :is(h2,h3),
.main .tools :is(h2,h3),
.main .table-box>h3{
  color:#173149!important;
  font-weight:850!important;
}
.p15-panel-head :is(h2,h3):before,
.main .table-header :is(h2,h3):before,
.main .tools :is(h2,h3):before,
.main .table-box>h3:before{
  background:linear-gradient(180deg,#3b82f6,#0ea5e9)!important;
}

.p15-readable-table{
  width:100%!important;
  font-variant-numeric:tabular-nums;
}
.p15-readable-table thead th{
  padding:11px 14px!important;
  color:#3f5368!important;
  background:linear-gradient(180deg,#f8fafc,#f1f5f9)!important;
  border-bottom:1px solid #dce5ee!important;
  font-size:10px!important;
  font-weight:850!important;
  letter-spacing:.055em!important;
  line-height:1.35!important;
  text-transform:uppercase;
  white-space:nowrap;
}
.p15-readable-table tbody td{
  padding:11px 14px!important;
  color:#25394d!important;
  border-bottom:1px solid #e9eef4!important;
  font-size:12px!important;
  font-weight:520!important;
  line-height:1.45!important;
  vertical-align:middle!important;
}
.p15-readable-table tbody tr:nth-child(even){background:#fbfdff!important}
.p15-readable-table tbody tr:hover{background:#eef6ff!important}
.p15-readable-table td small{color:#687d92!important}
.p15-readable-table .status,
.p15-readable-table .pill,
.p15-readable-table .badge{
  font-size:10px!important;
  font-weight:800!important;
}

/* Search / filter controls */
.main .search,
.main input[type="search"]{
  min-height:40px!important;
  border-color:#cbd8e5!important;
  border-radius:9px!important;
  color:#20364d!important;
  background:#fff!important;
}
.main .search::placeholder,
.main input::placeholder{
  color:#8292a5!important;
  opacity:1!important;
}

/* Ordinary white cards should not become unreadable because of inherited white KPI text */
.main .card:not(.p15-summary-card) :is(.card-title,.card-label,.label){
  color:inherit;
}

/* Tighter desktop rhythm */
@media(min-width:901px){
  body.p15-summary-page .main{padding-top:23px!important}
}

@media(max-width:1100px){
  .p15-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important}
  .p15-summary-card{min-height:102px!important;padding:17px!important}
}
@media(max-width:768px){
  .p15-hero{min-height:0!important;padding:18px!important;border-radius:15px!important;gap:15px!important}
  .p15-hero h1,.p15-hero .p13-page-title{font-size:25px!important}
  .p15-summary-grid{grid-template-columns:1fr!important;margin-bottom:14px!important}
  .p15-summary-card{min-height:92px!important}
  .p15-panel-head,.main .table-header,.main .tools{padding:13px!important;gap:10px!important;flex-wrap:wrap!important}
  .main .search{width:100%!important}
  .p15-readable-table thead th,.p15-readable-table tbody td{padding:10px 12px!important}
}

