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

.kmportal-shell{display:grid;grid-template-columns:286px minmax(0,1fr);gap:18px;max-width:none;width:min(100%, calc(100vw - 12px));margin:12px auto;padding:0 6px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#0c1740;}
.kmportal-main{width:100%;min-width:0;}
@media (max-width: 980px){.kmportal-shell{grid-template-columns:1fr;}}
.kmportal-nav{position:sticky;top:18px;align-self:start;background:rgba(255,255,255,.92);border:1px solid rgba(12,23,64,.10);border-radius:18px;overflow:hidden;box-shadow:0 18px 55px rgba(12,23,64,.10);}
@media (max-width: 980px){.kmportal-nav{position:static;}}
.kmportal-brand{display:flex;align-items:center;gap:12px;padding:14px 14px;border-bottom:1px solid rgba(12,23,64,.06);background:linear-gradient(135deg, rgba(12,23,64,.08), rgba(29,78,216,.10));}
.kmportal-brand img{width:44px;height:44px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid rgba(12,23,64,.08);}
.kmportal-brand-fallback{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#0c1740;color:#fff;font-weight:900;}
.kmportal-brand-title{font-weight:900;letter-spacing:-0.02em;}
.kmportal-brand-sub{opacity:.7;font-size:12px;font-weight:700;}
.kmportal-nav-links{display:flex;flex-direction:column;padding:8px;}
.kmportal-nav-link{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:11px 12px;border-radius:14px;text-decoration:none;border:1px solid transparent;color:#0c1740;align-items:start;}
.kmportal-nav-link:hover{background:rgba(12,23,64,.04);border-color:rgba(12,23,64,.08);}
.kmportal-nav-link.is-active{background:linear-gradient(135deg, rgba(29,78,216,.14), rgba(12,23,64,.03));border-color:rgba(29,78,216,.30);}
.kmportal-ico{font-size:18px;line-height:1;}
.kmportal-nav-name{font-weight:900;line-height:1.16;overflow-wrap:anywhere;word-break:break-word;}
.kmportal-nav-desc{grid-column:2/3;font-size:12px;opacity:.75;font-weight:650;margin-top:2px;}

/* Portal sidebar: show only tool titles (no subtitle text) */
.kmportal-nav-desc{display:none !important;}
.kmportal-nav-footer{padding:12px;border-top:1px solid rgba(12,23,64,.06);background:rgba(255,255,255,.7);}
.kmportal-user-name{font-weight:850;font-size:13px;margin-bottom:6px;opacity:.9;}
.kmportal-logout{font-weight:800;font-size:12px;text-decoration:none;color:#b91c1c;}
.kmportal-main{min-height:60vh;}
.kmportal-card{background:rgba(255,255,255,.92);border:1px solid rgba(12,23,64,.10);border-radius:18px;box-shadow:0 18px 55px rgba(12,23,64,.10);padding:16px;margin-bottom:16px;}
.kmportal-btn{border:1px solid rgba(12,23,64,.14);background:rgba(255,255,255,.86);border-radius:999px;padding:10px 12px;font-weight:900;cursor:pointer;}
.kmportal-btn:hover{transform:translateY(-1px);}

/* Shared CTA buttons (used by Briefing + Website Update) */
.km-btn{appearance:none;border:1px solid rgba(12,23,64,.14);background:rgba(255,255,255,.86);border-radius:999px;padding:12px 14px;font-weight:950;cursor:pointer;transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;line-height:1.2;}
.km-btn:hover{transform:translateY(-1px);}
.km-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;filter:none;}
.km-btnPrimary{border-color:rgba(29,78,216,.45);background:linear-gradient(135deg,#0c1740,#1d4ed8);color:#fff;box-shadow:0 22px 70px rgba(29,78,216,.22);}
.km-btnPrimary:hover{box-shadow:0 28px 90px rgba(29,78,216,.28);filter:saturate(1.03);}
.kmportal-table-wrap{overflow:auto;border-radius:14px;border:1px solid rgba(12,23,64,.10);}
.kmportal-table{width:100%;border-collapse:collapse;font-size:13px;}
.kmportal-table th,.kmportal-table td{padding:10px 10px;border-bottom:1px solid rgba(12,23,64,.06);vertical-align:top;}
.kmportal-table th{position:sticky;top:0;background:rgba(255,255,255,.96);text-align:left;font-weight:900;}
.kmportal-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(12,23,64,.12);font-weight:850;font-size:12px;}
.kmportal-pill.sent{border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.10);}
.kmportal-pill.error{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);}
.kmportal-pill.draft{border-color:rgba(29,78,216,.40);background:rgba(29,78,216,.10);}

/* Shared UI helpers (used by multiple tools) */
.kmportal-inlineRange{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid rgba(12,23,64,.10);border-radius:999px;background:rgba(255,255,255,.86);}
.kmportal-inlineRange label{font-weight:900;font-size:12px;opacity:.8;}
.kmportal-inlineRange input[type="range"]{width:160px;}
.kmportal-inlineRange span{font-weight:900;font-size:12px;opacity:.8;min-width:54px;text-align:right;}

.kmportal-mapWrap{margin:10px 0 14px;}
.kmportal-map{height:340px;border-radius:18px;border:1px solid rgba(12,23,64,.10);overflow:hidden;}
@media (max-width: 980px){.kmportal-map{height:280px;}}



/* Mobile nav compact (v1.4.29) */
@media (max-width: 980px){
  .kmportal-nav{
    border-radius:18px;
    padding-bottom:6px;
  }
  .kmportal-nav-links{
    flex-direction:row;
    gap:6px;
    overflow-x:auto;
    padding:10px;
    -webkit-overflow-scrolling:touch;
  }
  .kmportal-nav-link{
    grid-template-columns:28px 1fr;
    min-width:190px;
    padding:10px 12px;
  }
  .kmportal-nav-desc{display:none;}
  .kmportal-brand{padding:12px;}
}
@media (max-width: 720px){
  .kmportal-nav-links{
    padding:8px;
  }
  .kmportal-nav-link{
    min-width:150px;
    padding:8px 10px;
  }
  .kmportal-brand img,
  .kmportal-brand-fallback{
    width:36px;height:36px;border-radius:10px;
  }
  .kmportal-brand-title{font-size:14px;}
  .kmportal-brand-sub{display:none;}
}

/* ===== Brand fallback (logo missing) ===== */
.km-toolLogoFallback,
.kmportal-brand-fallback{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:12px;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  font-weight:800;
  letter-spacing:.02em;
}


/* AiNemix Premium Touch */
.kmportal-body{
  background:
    radial-gradient(1200px 600px at 75% 0%, rgba(29,78,216,.14), rgba(29,78,216,0) 60%),
    radial-gradient(900px 520px at 15% 10%, rgba(12,23,64,.10), rgba(12,23,64,0) 65%),
    linear-gradient(180deg, rgba(12,23,64,.06), rgba(12,23,64,.02));
  min-height:100vh;
}
.kmportal-nav{backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);}
.kmportal-card, .kmportal-panel{backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);}
.kmportal-nav-link.is-active{box-shadow:0 10px 30px rgba(29,78,216,.10);}
.kmportal-btn{box-shadow:0 10px 26px rgba(12,23,64,.12);}
.kmportal-btn:hover{transform: translateY(-1px);}
.kmportal-muted{opacity:.72;}
