
/* MedStartups Studio — Healthcare-focused Creative Agency
   Accessible, fast, and compliance-forward. */

:root{
  --bg: #F5F9FF;            /* calming light blue */
  --surface: #FFFFFF;
  --text: #0F1F2E;
  --muted: #3A5167;
  --primary: #143E6C;       /* deep clinical blue */
  --accent: #54A692;        /* calm teal */
  --warning: #B45309;
  --border: rgba(20,62,108,.14);
  --shadow: 0 18px 50px rgba(7, 19, 32, 0.10);
  --radius: 18px;
  --radius-lg: 26px;
  --max: 1120px;
  --focus: 3px solid rgba(84,166,146,.75);
  --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: var(--font);
  color: var(--text);
  background: radial-gradient(900px 500px at 15% 10%, rgba(84,166,146,.18), transparent 60%),
              radial-gradient(900px 520px at 85% 0%, rgba(20,62,108,.14), transparent 55%),
              var(--bg);
  line-height:1.5;
}
img{max-width:100%; height:auto}
a{color: var(--primary); text-decoration: none}
a:hover{text-decoration: underline}
p{color: var(--muted); margin: 0 0 1rem}
h1,h2,h3{color: var(--text); line-height:1.15; margin:0 0 .65rem}
h1{font-size: clamp(2.1rem, 3.4vw, 3.1rem); letter-spacing:-.02em}
h2{font-size: clamp(1.55rem, 2.1vw, 2.05rem); letter-spacing:-.02em}
h3{font-size: 1.12rem}
small{color: var(--muted)}
code,kbd{font-family: var(--mono)}
kbd{
  padding:.18rem .42rem;
  border: 1px solid var(--border);
  border-bottom-width: 3px;
  border-radius: 10px;
  background: rgba(255,255,255,.7);
}
.container{max-width: var(--max); margin: 0 auto; padding: 0 18px}
.skip-link{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:18px; top:18px; width:auto; height:auto; padding:12px 14px;
  background: var(--surface); border: 2px solid var(--primary); border-radius: 12px;
  z-index: 9999;
  outline: none;
}

.header{
  position: sticky; top:0; z-index: 50;
  background: rgba(245, 249, 255, .82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.header-inner{
  display:flex; align-items:center; justify-content: space-between;
  padding: 14px 0;
  gap: 10px;
}
.brand{
  display:flex; align-items:center; gap: 10px;
  font-weight: 800; letter-spacing: -0.02em;
}
.brand-mark{
  width: 38px; height: 38px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  display:grid; place-items:center;
  box-shadow: 0 10px 28px rgba(7, 19, 32, 0.08);
}
.brand-title{display:flex; flex-direction:column; line-height: 1.1}
.brand-title span:nth-child(1){font-size: 1.02rem; color: var(--text)}
.brand-title span:nth-child(2){font-size: .82rem; color: var(--muted); font-weight:600}
.nav{
  display:flex; align-items:center; gap: 16px;
}
.nav a{
  padding: 10px 10px;
  border-radius: 12px;
  font-weight: 650;
  color: var(--text);
}
.nav a[aria-current="page"]{background: rgba(20,62,108,.08); color: var(--primary)}
.nav a:focus{outline: var(--focus); outline-offset: 2px}
.header-cta{
  display:flex; align-items:center; gap: 10px;
}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.82);
  font-weight: 750;
  color: var(--text);
  box-shadow: 0 14px 34px rgba(7, 19, 32, 0.08);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  cursor:pointer;
}
.btn:hover{transform: translateY(-1px); box-shadow: 0 18px 48px rgba(7, 19, 32, 0.10); text-decoration:none}
.btn:active{transform: translateY(0)}
.btn:focus{outline: var(--focus); outline-offset: 2px}
.btn-primary{
  background: linear-gradient(145deg, rgba(20,62,108,1), rgba(20,62,108,.92));
  color: #fff; border-color: rgba(20,62,108,.25);
}
.btn-secondary{
  background: rgba(84,166,146,.10);
  border-color: rgba(84,166,146,.35);
}
.btn-link{box-shadow:none; background: transparent}
.badge{
  display:inline-flex; align-items:center; gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(20,62,108,.08);
  border: 1px solid var(--border);
  font-weight: 700;
  color: var(--primary);
}
.badge small{color: var(--primary); opacity:.92}

/* Semantic badges (status / priority) */
.badge-status{ background: rgba(20,62,108,.08); color: var(--primary); }
.badge-status.badge-open{ background: rgba(20,62,108,.10); }
.badge-status.badge-pending{ background: rgba(84,166,146,.14); color: rgba(20,62,108,1); }
.badge-status.badge-closed{ background: rgba(7, 19, 32, .08); color: rgba(7, 19, 32, .86); }

.badge-priority{ background: rgba(20,62,108,.06); color: rgba(7, 19, 32, .88); }
.badge-priority.badge-normal{ background: rgba(7, 19, 32, .06); }
.badge-priority.badge-high{ background: rgba(180,83,9,.12); color: rgba(180,83,9,1); }
.badge-priority.badge-urgent{ background: rgba(185,28,28,.12); color: rgba(185,28,28,1); }

/* Dashboard stats */
.stats-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
}
.stat{
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 18px 44px rgba(7, 19, 32, 0.06);
}
.stat-label{ font-size: 13px; color: var(--muted); }
.stat-value{ font-size: 28px; font-weight: 950; margin-top: 6px; letter-spacing: -.3px; }

.empty{
  border: 1px dashed var(--border);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.62);
}
.empty-title{ font-weight: 950; }

@media (max-width: 980px){
  .stats-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


.mobile-toggle{
  display:none;
  border:1px solid var(--border);
  background: rgba(255,255,255,.86);
  border-radius: 14px;
  padding: 10px 12px;
  cursor:pointer;
}
.mobile-toggle:focus{outline: var(--focus); outline-offset:2px}

.hero{
  padding: 54px 0 22px;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.18fr .82fr;
  gap: 26px;
  align-items: start;
}
.hero-card{
  background: rgba(255,255,255,.86);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow);
}
.hero h1{margin-bottom: 12px}
.hero p.lead{
  font-size: 1.08rem;
  color: var(--muted);
  margin-bottom: 18px;
}
.hero-actions{display:flex; flex-wrap: wrap; gap: 10px; margin-top: 14px}
.hero-meta{display:flex; flex-wrap:wrap; gap: 10px; margin-top: 18px}
.kpi-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.kpi{
  background: rgba(245, 249, 255, .75);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
}
.kpi strong{display:block; font-size: 1.25rem}
.kpi span{color: var(--muted); font-weight: 650; font-size: .88rem}

.section{padding: 44px 0}
.section .head{
  display:flex; justify-content:space-between; gap: 18px; align-items:end;
  margin-bottom: 18px;
}
.section .head p{max-width: 68ch}
.grid{
  display:grid;
  gap: 14px;
}
.grid-3{grid-template-columns: repeat(3, 1fr)}
.grid-2{grid-template-columns: repeat(2, 1fr)}
.card{
  background: rgba(255,255,255,.86);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: 0 18px 44px rgba(7, 19, 32, 0.07);
  transition: transform .16s ease, box-shadow .16s ease;
}
.card:hover{transform: translateY(-1px); box-shadow: 0 22px 56px rgba(7, 19, 32, 0.09)}
.card:focus-within{outline: var(--focus); outline-offset: 4px}
.icon{
  width: 42px; height: 42px;
  display:grid; place-items:center;
  border-radius: 14px;
  background: rgba(84,166,146,.12);
  border: 1px solid rgba(84,166,146,.25);
  margin-bottom: 10px;
}
.list{
  margin: 10px 0 0;
  padding-left: 1.1rem;
}
.list li{margin: .35rem 0; color: var(--muted)}
.callout{
  background: linear-gradient(145deg, rgba(20,62,108,.10), rgba(84,166,146,.10));
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-shadow: 0 18px 60px rgba(7, 19, 32, 0.09);
}
.callout strong{color: var(--text)}
.two-col{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.pill-row{display:flex; flex-wrap: wrap; gap: 10px}
.pill{
  display:inline-flex; align-items:center; gap: 8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.70);
  font-weight: 700;
  color: var(--text);
}
.pill svg{opacity:.9}

.footer{
  border-top: 1px solid var(--border);
  padding: 26px 0 30px;
  background: rgba(245, 249, 255, .75);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.6fr .9fr .9fr;
  gap: 14px;
}
.footer a{color: var(--muted); font-weight:650}
.footer a:hover{color: var(--primary)}
.footer small{display:block; margin-top: 14px}

.form{
  display:grid;
  gap: 12px;
}
label{font-weight: 750; color: var(--text)}
input, textarea, select{
  width: 100%;
  padding: 12px 12px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  font: inherit;
}
textarea{min-height: 140px; resize: vertical}
input:focus, textarea:focus, select:focus{outline: var(--focus); outline-offset: 2px}
.field-note{margin-top: -6px; color: var(--muted); font-size: .92rem}

hr.sep{border:0; border-top: 1px solid var(--border); margin: 18px 0}

.notice{
  border-left: 4px solid rgba(20,62,108,.55);
  background: rgba(255,255,255,.75);
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
}
.notice strong{color: var(--text)}

.table{
  width:100%;
  border-collapse: collapse;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.86);
}
.table th, .table td{
  padding: 12px 12px;
  border-bottom: 1px solid var(--border);
  text-align:left;
}
.table th{font-weight: 800; color: var(--text); background: rgba(20,62,108,.06)}
.table tr:last-child td{border-bottom: 0}
.table td{color: var(--muted); font-weight: 650}

/* Video modal */
.modal-backdrop{
  position: fixed; inset: 0;
  background: rgba(15,31,46,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding: 20px;
  z-index: 200;
}
.modal{
  width: min(920px, 100%);
  border-radius: 22px;
  background: var(--surface);
  border: 1px solid rgba(255,255,255,.30);
  box-shadow: 0 30px 120px rgba(0,0,0,.35);
  overflow:hidden;
}
.modal-head{
  display:flex; justify-content: space-between; align-items:center;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.modal-head strong{font-size: 1.02rem}
.modal-body{padding: 0}
.modal-close{
  border: 1px solid var(--border);
  background: rgba(255,255,255,.90);
  border-radius: 12px;
  padding: 10px 12px;
  cursor:pointer;
}
.modal-close:focus{outline: var(--focus); outline-offset:2px}
.modal iframe, .modal video{width:100%; height: 520px; border:0; display:block; background:#000}

/* Chat widget */
.chat-launch{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 150;
}
.chat-button{
  border-radius: 999px;
  padding: 12px 14px;
}
.chat-panel{
  position: fixed;
  right: 18px;
  bottom: 78px;
  width: min(380px, calc(100vw - 36px));
  background: rgba(255,255,255,.92);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: 0 28px 90px rgba(7, 19, 32, 0.16);
  overflow:hidden;
  display:none;
}
.chat-head{
  padding: 12px 14px;
  display:flex; align-items:center; justify-content:space-between;
  gap: 12px;
  background: rgba(20,62,108,.06);
  border-bottom: 1px solid var(--border);
}
.chat-head strong{font-size: .98rem}
.chat-body{
  padding: 12px;
  height: 340px;
  overflow:auto;
}
.msg{
  margin: 10px 0;
  display:flex;
  gap: 10px;
}
.bubble{
  padding: 10px 12px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.95);
  max-width: 90%;
}
.msg.user{justify-content:flex-end}
.msg.user .bubble{background: rgba(84,166,146,.12); border-color: rgba(84,166,146,.30)}
.chat-foot{
  display:flex; gap: 10px;
  padding: 12px;
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,.85);
}
.chat-foot input{flex:1}
.chat-foot button{white-space: nowrap}
.chat-mini{
  font-size:.88rem;
  color: var(--muted);
}

/* Utility */
.visually-hidden{
  position:absolute !important; height:1px; width:1px;
  overflow:hidden; clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

/* Responsive */
@media (max-width: 980px){
  .hero-grid{grid-template-columns: 1fr}
  .grid-3{grid-template-columns: 1fr 1fr}
  .footer-grid{grid-template-columns: 1fr 1fr}
  .two-col{grid-template-columns: 1fr}
}
@media (max-width: 720px){
  .nav{display:none}
  .mobile-toggle{display:inline-flex}
  .header-cta{gap:8px}
  .grid-3{grid-template-columns: 1fr}
  .grid-2{grid-template-columns: 1fr}
  .footer-grid{grid-template-columns: 1fr}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .btn, .card{transition:none}
}


/* Portal enhancements (enterprise UI) */
.portal-shell{
  max-width: var(--max);
  margin: 0 auto;
  padding: 18px;
}
.portal-top{
  display:flex; align-items:center; justify-content:space-between;
  gap: 12px; flex-wrap: wrap;
}
.portal-top .meta{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
}
.tag{
  display:inline-flex; align-items:center; gap:8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(84,166,146,.10);
  border: 1px solid rgba(84,166,146,.30);
  font-weight: 750;
  color: var(--text);
}
.sidebar{
  background: rgba(255,255,255,.86);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 14px;
  box-shadow: 0 18px 44px rgba(7, 19, 32, 0.07);
}
.portal-grid{
  display:grid;
  grid-template-columns: 280px 1fr;
  gap: 14px;
  align-items:start;
}
.side-link{
  display:flex; align-items:center; justify-content:space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid transparent;
  font-weight: 750;
  color: var(--text);
}
.side-link:hover{background: rgba(20,62,108,.06); text-decoration:none}
.side-link[aria-current="page"]{background: rgba(20,62,108,.08); border-color: var(--border); color: var(--primary)}
.kpi-row{display:grid; grid-template-columns: repeat(3,1fr); gap: 12px}
.kpi-row .kpi{background: rgba(255,255,255,.86)}
@media (max-width: 980px){
  .portal-grid{grid-template-columns: 1fr}
  .kpi-row{grid-template-columns: 1fr}
}


/* WhatsApp floating assistant */
.wa-float{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 9999;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 999px;
  background: rgba(37, 211, 102, 0.12);
  border: 1px solid rgba(37, 211, 102, 0.35);
  color: var(--text);
  font-weight: 850;
  box-shadow: 0 18px 44px rgba(7, 19, 32, 0.10);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.wa-float:hover{ text-decoration:none; transform: translateY(-1px); }
.wa-float:focus{ outline: 3px solid rgba(37, 211, 102, 0.35); outline-offset: 3px; }
.wa-ico{
  width: 36px; height: 36px;
  display:grid; place-items:center;
  border-radius: 999px;
  background: rgba(37, 211, 102, 0.16);
  border: 1px solid rgba(37, 211, 102, 0.35);
  color: rgba(20,62,108,1);
}
.wa-text{ display:none; }
@media (min-width: 420px){
  .wa-text{ display:inline; }
}
@media (prefers-reduced-motion: no-preference){
  .wa-float{ transition: transform .16s ease; }
  .wa-ico svg{ animation: waPulse 2.2s ease-in-out infinite; }
  @keyframes waPulse { 0%,100%{ transform: scale(1);} 50%{ transform: scale(1.06);} }
}


/* Mobile-first UX polish */
.nav a{ padding: 10px 10px; border-radius: 12px; }
.nav a:focus{ outline: 3px solid rgba(84,166,146,.35); outline-offset: 3px; }
.btn{ min-height: 44px; } /* mobile tap target */
input, select, textarea{ min-height: 44px; }
.hero{ padding-top: 34px; }
.card{ background: rgba(255,255,255,.88); }
@media (prefers-reduced-motion: no-preference){
  .card{ transition: transform .18s ease, box-shadow .18s ease; }
  .card:hover{ transform: translateY(-1px); }
}

.pill-active{
  border-color: rgba(84,166,146,.55) !important;
  box-shadow: 0 10px 26px rgba(84,166,146,.18);
}
.acc-btn{
  width: 100%;
  text-align: left;
  display:flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  background: transparent;
  border: 0;
  padding: 6px 0;
  font-weight: 850;
  cursor: pointer;
}
.acc-btn::after{ content: "＋"; font-size: 18px; color: var(--muted); }
.acc-btn[aria-expanded="true"]::after{ content: "－"; }
.acc-panel{ margin-top: 8px; color: var(--muted); }

/* Landing aesthetic upgrade */
body{
  background: radial-gradient(1200px 600px at 15% 0%, rgba(84,166,146,.12), transparent 60%),
              radial-gradient(1000px 520px at 85% 0%, rgba(20,62,108,.10), transparent 60%),
              var(--bg);
}
.hero{
  position: relative;
}
.hero::before{
  content:"";
  position:absolute;
  inset:-30px -10px auto -10px;
  height: 260px;
  background: radial-gradient(600px 260px at 30% 40%, rgba(84,166,146,.14), transparent 60%),
              radial-gradient(700px 300px at 70% 30%, rgba(20,62,108,.12), transparent 60%);
  filter: blur(0px);
  pointer-events:none;
  z-index:-1;
}
@media (max-width: 720px){
  .section{ padding: 26px 0; }
  .header-cta{ display:none; } /* keep header clean on small screens; menu includes CTAs */
}


/* Frontend nav + accessibility enhancements */
.skip-link{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left: 12px; top: 12px; width:auto; height:auto; padding: 10px 12px;
  background: rgba(255,255,255,.95);
  border: 1px solid var(--border);
  border-radius: 12px;
  z-index: 99999;
}
.header{
  position: sticky;
  top: 0;
  z-index: 9998;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.nav-item{ position: relative; }
.nav-link{ display:inline-flex; align-items:center; gap:8px; }
.nav-has-sub > .nav-link::after{
  content:"▾"; font-size: 12px; color: var(--muted);
}
.nav-sub{
  list-style: none;
  margin: 10px 0 0 0;
  padding: 10px;
  display: none;
  position: absolute;
  right: 0;
  min-width: 220px;
  background: rgba(255,255,255,.94);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(7, 19, 32, 0.12);
}
.nav-sub a{
  display:block;
  padding: 10px 10px;
  border-radius: 12px;
}
.nav-sub a:hover{ background: rgba(84,166,146,.10); text-decoration:none; }
.nav-has-sub:hover .nav-sub,
.nav-has-sub:focus-within .nav-sub{
  display:block;
}
.nav a[aria-current="page"]{
  border-color: rgba(84,166,146,.55);
  box-shadow: 0 10px 24px rgba(84,166,146,.14);
}
@media (max-width: 840px){
  .nav-sub{ position: static; display:block; margin-top: 8px; }
  .nav-has-sub > .nav-link::after{ content:""; }
}

.footer-links{ list-style:none; margin: 10px 0 0 0; padding:0; display:grid; gap:8px; }
.footer-links a{ color: var(--muted); }
.footer-links a:hover{ color: var(--text); text-decoration:none; }


/* Portal layout (sidebar + breadcrumbs) */
.portal-app{
  min-height: 100vh;
  display: grid;
  grid-template-columns: 280px 1fr;
}
.psidebar{
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
  padding: 16px;
  border-right: 1px solid var(--border);
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.pmain{ display:flex; flex-direction: column; min-width: 0; }
.ptopbar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  background: rgba(255,255,255,.70);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  z-index: 60;
}
.pbrand{ font-weight: 900; letter-spacing: .2px; color: var(--text); }
.pbrand:hover{ text-decoration:none; }
.psidebar-toggle{ display:none; }

.pcrumbs{
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  background: rgba(255,255,255,.55);
}
.pcrumbs-inner{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items:center;
  color: var(--muted);
  font-size: 14px;
}
.pcrumbs-inner a{ color: var(--muted); }
.pcrumbs-inner a:hover{ color: var(--text); text-decoration:none; }
.psep{ opacity: .6; }
.pcontent{ padding: 16px; max-width: 1100px; width: 100%; margin: 0 auto; }
.pfooter{ padding: 16px; border-top: 1px solid var(--border); background: rgba(255,255,255,.55); }
.pfooter-inner{ max-width: 1100px; margin: 0 auto; display:flex; justify-content: space-between; gap: 12px; flex-wrap:wrap; }

.psidebar-top{ display:grid; gap: 12px; }
.psidebar-brand{ display:flex; gap: 10px; align-items:center; padding: 10px; border-radius: 16px; border: 1px solid var(--border); background: rgba(255,255,255,.85); }
.psidebar-brand:hover{ text-decoration:none; transform: translateY(-1px); }
.psidebar-dot{ width: 12px; height: 12px; border-radius: 999px; background: rgba(84,166,146,.85); box-shadow: 0 0 0 6px rgba(84,166,146,.14); }
.psidebar-user{ display:flex; gap: 10px; align-items:center; padding: 10px; border-radius: 16px; border: 1px solid var(--border); background: rgba(255,255,255,.72); }
.avatar{ width: 38px; height: 38px; border-radius: 14px; display:grid; place-items:center; border:1px solid var(--border); background: rgba(20,62,108,.06); font-weight:900; }

.psidebar-nav{ display:grid; gap: 6px; margin-top: 10px; }
.psidebar-link{
  display:flex; gap: 10px; align-items:center;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid transparent;
  color: var(--text);
}
.psidebar-link:hover{ text-decoration:none; background: rgba(84,166,146,.10); border-color: rgba(84,166,146,.25); }
.psidebar-link[aria-current="page"]{ background: rgba(84,166,146,.12); border-color: rgba(84,166,146,.40); box-shadow: 0 12px 28px rgba(84,166,146,.10); }
.psidebar-foot{ margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--border); }

.pi{ opacity: .9; }

/* Mobile sidebar overlay */
@media (max-width: 980px){
  .portal-app{ grid-template-columns: 1fr; }
  .psidebar{
    position: fixed;
    inset: 0 auto 0 0;
    width: min(320px, 86vw);
    transform: translateX(-102%);
    transition: transform .18s ease;
    z-index: 80;
    box-shadow: 0 18px 44px rgba(7, 19, 32, 0.18);
  }
  .psidebar.open{ transform: translateX(0); }
  .psidebar-toggle{ display:inline-flex; }
  .ptopbar-actions .pill{ display:none; }
}

/* Kanban board */
.kanban-wrap{ display:grid; gap: 12px; }
.kanban-toolbar{ display:flex; gap: 10px; flex-wrap:wrap; align-items:center; justify-content: space-between; }
.kanban-board{
  display:grid;
  grid-template-columns: repeat(3, minmax(240px, 1fr));
  gap: 12px;
  align-items: start;
}
.kanban-col{
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  padding: 10px;
  min-height: 420px;
}
.kanban-col h3{ margin: 6px 6px 10px 6px; display:flex; justify-content: space-between; align-items:center; }
.kanban-count{ font-size: 12px; color: var(--muted); border:1px solid var(--border); padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.85); }
.kanban-drop{
  display:grid;
  gap: 10px;
}
.kanban-card{
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.88);
  padding: 10px;
  box-shadow: 0 18px 44px rgba(7, 19, 32, 0.06);
}
.kanban-card:focus{ outline: 3px solid rgba(84,166,146,.35); outline-offset: 3px; }
.kanban-card.dragging{ opacity: .6; transform: rotate(-0.2deg); }
.kmeta{ display:flex; justify-content: space-between; gap: 10px; align-items:center; }
.ktitle{ font-weight: 900; margin-top: 6px; }
.kmini{ color: var(--muted); font-size: 13px; margin-top: 6px; }
.kactions{ display:flex; gap: 8px; flex-wrap:wrap; margin-top: 10px; }
.khandle{ cursor: grab; user-select:none; border: 1px solid var(--border); border-radius: 999px; padding: 2px 8px; color: var(--muted); background: rgba(20,62,108,.04); }

@media (max-width: 980px){
  .kanban-board{ grid-template-columns: 1fr; }
  .kanban-col{ min-height: auto; }
}

/* Toast */
.toast{
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 99999;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.92);
  box-shadow: 0 18px 44px rgba(7, 19, 32, 0.14);
  color: var(--text);
  display:none;
}
.toast.show{ display:block; }

/* Kanban swimlanes by priority */
.kanban-lanes{ display:grid; gap: 12px; }
.lane{ padding: 12px; }
.lane-head{ display:flex; justify-content: space-between; align-items:center; gap: 10px; margin-bottom: 10px; }
.lane-board{
  display:grid;
  grid-template-columns: repeat(3, minmax(240px, 1fr));
  gap: 12px;
}
@media (max-width: 980px){
  .lane-board{ grid-template-columns: 1fr; }
}
