/* ============================================================
   K-ELITE 3.0 CONTROLLED INTEGRATION - k30.css (2026-09-30)
   ------------------------------------------------------------
   Owner-approved K30 modules: HOME Learning & Tools + READINESS,
   Product Library (30), Media Library (30), New Member Cycle (9),
   Learning Cycle (9).
   Component CSS ported VERBATIM from the owner-approved preview
   (_PREVIEW_KELITE30/preview.html, Revision 1 + final mobile pass)
   and scoped under .k30-page so NO existing dist/ selector is
   redefined or overridden. Only NEW class names are declared here
   (.grid -> .k30-grid, #m-chips -> #k30-m-chips to avoid clashes).
   Preview chrome (previewbar/tabs/bnav/mock home) is intentionally
   NOT ported - production uses the real app navigation.
   ============================================================ */

/* ---------- shared page chrome ---------- */
.k30-page h1{font-size:21px;margin:6px 0 2px}
.k30-page .sub{color:var(--muted);font-size:12px;margin:0 0 14px;line-height:1.6}
.k30-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.k30-back{flex:0 0 auto;min-height:44px;border:1px solid #416a8c;background:#0a2947;color:#d8e8f7;
  border-radius:10px;padding:10px 14px;font-size:12.5px;font-weight:800;cursor:pointer}
.k30-back:active{background:#123f66}
.k30-page .kicker{color:var(--gold);font-size:11px;letter-spacing:1.6px;font-weight:900;margin:18px 0 8px;
  display:flex;align-items:center;gap:8px}
.k30-page .kicker:before{content:"";width:22px;height:2px;background:var(--gold)}
.k30-page .hint{font-size:11px;color:#8fb0cb;border-left:3px solid var(--gold);padding-left:9px;margin:10px 0}
.k30-page .preview-note{font-size:10px;color:var(--muted);border:1px dashed #3a6c93;border-radius:12px;
  padding:8px 10px;margin:10px 0;line-height:1.6}

/* ---------- HOME: K-ELITE LEARNING & TOOLS entry cards ---------- */
.k30-page .tools{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.k30-page .tool{position:relative;min-height:126px;border:1.5px solid #c9a44f;border-radius:16px;overflow:hidden;
  background:linear-gradient(150deg,#0b3153,#03182b);color:#fff;padding:13px;text-align:left;cursor:pointer;
  box-shadow:inset 0 0 16px #4f98d11c,0 10px 22px #00000052;display:flex;flex-direction:column;gap:6px;
  transition:transform .15s ease,box-shadow .15s ease}
.k30-page .tool:hover{transform:translateY(-2px)}
.k30-page .tool:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,#ffd66e,#b67a18)}
.k30-page .tool .ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:23px;
  background:linear-gradient(145deg,#ffe991,#d7a432);color:#17202a;border:1px solid #ffe9a0;
  box-shadow:0 6px 16px #00000045}
.k30-page .tool b{font-size:14.5px;line-height:1.3}
.k30-page .tool span{font-size:10.5px;color:#a9c6de;line-height:1.4}
.k30-page .tool .go{position:absolute;right:12px;top:13px;color:var(--gold);font-size:16px;font-weight:1000}
.k30-page .tool:active{transform:translateY(1px)}

/* ---------- readiness / counters ---------- */
.k30-page .count{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 4px}
.k30-page .count b{font-size:15px;color:var(--gold)}
.k30-page .bar{height:9px;border-radius:99px;background:#142f45;overflow:hidden;margin:9px 0 4px;
  border:1px solid #38556b}
.k30-page .bar i{display:block;height:100%;background:linear-gradient(90deg,#c28a24,#ffe58c)}

/* ---------- libraries: search / chips ---------- */
.k30-page .search{width:100%;min-height:44px;padding:12px;border-radius:12px;border:1px solid #477294;
  background:#061a2f;color:#fff;font-size:14px}
.k30-page .chips{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}
.k30-page .chip{border:1px solid #416a8c;background:#0a2947;color:#d8e8f7;min-height:44px;
  display:inline-flex;align-items:center;padding:9px 14px;border-radius:999px;font-size:12px;cursor:pointer}
.k30-page .chip.on{background:linear-gradient(135deg,#ffe991,#d7a432);color:#17202a;border-color:#ffe9a0;
  font-weight:800}
@media(max-width:599px){
  .k30-page #k30-m-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    padding-bottom:4px;margin-right:-8px;padding-right:8px}
  .k30-page #k30-m-chips::-webkit-scrollbar{display:none}
  .k30-page #k30-m-chips .chip{flex:0 0 auto}
}

/* ---------- premium item card (mobile-first) ---------- */
.k30-page .k30-grid{display:grid;grid-template-columns:1fr;gap:13px}
.k30-page .item{background:#fff;color:#142438;border-radius:18px;overflow:hidden;position:relative;cursor:pointer;
  border:1.5px solid #c9a44f;box-shadow:0 16px 34px #0008;transition:transform .18s ease,box-shadow .18s ease}
.k30-page .item:hover{transform:translateY(-3px);box-shadow:0 24px 46px #000a}
.k30-page .item .ph{height:196px;background:linear-gradient(135deg,#0b2b4a,#041425);position:relative;
  overflow:hidden;border-bottom:3px solid #e3c25e}
.k30-page .item .ph img{width:100%;height:100%;object-fit:contain;object-position:center;padding:12px 12px 34px;
  display:block}
.k30-page .item .ph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(2,13,26,0) 68%,rgba(2,13,26,.88));pointer-events:none}
.k30-page .item .body{padding:13px 14px 15px}
.k30-page .item h3{margin:0 0 5px;font-size:17.5px;font-weight:900;letter-spacing:-.2px}
.k30-page .item p{margin:8px 0 0;font-size:13px;color:#42586e;line-height:1.6}
.k30-page .item .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.k30-page .item .meta span{font-size:10.5px;background:#eef3f8;color:#33506a;border:1px solid #d7e2ec;
  border-radius:99px;padding:4px 8px}
.k30-page .pnum{position:absolute;top:10px;right:10px;z-index:3;background:#02101fee;border:1px solid #ffd66e;
  color:#ffd66e;font-size:10px;font-weight:800;letter-spacing:1.4px;padding:4px 9px;border-radius:99px}
.k30-page .typechip{position:absolute;top:10px;left:10px;z-index:3;background:#0b2b47f2;border:1px solid #5fc8ff;
  color:#9fd7ff;font-size:10px;font-weight:800;letter-spacing:1.2px;padding:4px 9px;border-radius:99px;
  text-transform:uppercase}
.k30-page .ribbon{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;justify-content:space-between;
  align-items:flex-end;gap:8px;padding:10px 11px}
.k30-page .cat{display:inline-block;font-size:10.5px;padding:4px 10px;border-radius:99px;background:#0a3152;
  color:#f7d66d;border:1px solid #745e2c;font-weight:800;box-shadow:0 4px 14px #0009}
.k30-page .pv{background:linear-gradient(135deg,#ffe991,#d7a432);color:#17202a;font-weight:900;font-size:10.5px;
  border-radius:999px;padding:4px 10px;white-space:nowrap;box-shadow:0 4px 14px #0009}
.k30-page .item .open{margin-top:12px;width:100%;min-height:44px;border:1px solid #9b7835;
  background:linear-gradient(180deg,#ffe991,#e0b64a);color:#17202a;border-radius:12px;padding:11px;
  font-size:14px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px #0000002e}
.k30-page .item .open.ghost{background:linear-gradient(180deg,#103454,#08213b);color:#fff;margin-top:8px}

/* media info rows - labels retained verbatim */
.k30-page .inforow{display:flex;gap:9px;align-items:flex-start;background:#f5f9fd;border:1px solid #dde8f2;
  border-left:3px solid #0a3152;border-radius:11px;padding:9px 11px;margin-top:8px}
.k30-page .inforow .em{font-size:15px;line-height:1.3}
.k30-page .inforow b{display:block;color:#0a3152;font-size:12px;margin-bottom:2px}
.k30-page .inforow span{display:block;font-size:12.5px;color:#3c5670;line-height:1.55}

/* placeholder slots */
.k30-page .ph-slot{border:1.5px dashed #b88b37;border-radius:18px;
  background:linear-gradient(160deg,#05192d,#02101f);min-height:172px;padding:28px 14px;text-align:center;
  color:#8fb0cb;display:flex;flex-direction:column;justify-content:center}
.k30-page .ph-slot b{display:block;color:#d8e8f7;font-size:15px;margin-top:5px}
.k30-page .ph-slot span{display:inline-block;margin-top:11px;font-size:12.5px;background:#0b2b47;
  border:1px dashed #7a6a3a;color:#f2d187;border-radius:99px;padding:7px 14px}
.k30-page .ph-slot .slotno{font-size:10px;letter-spacing:2.2px;color:#a0813a;font-weight:800}
.k30-page .flag{background:#fff4d6;border:1px solid #e0b53c;color:#7a5300;font-size:10.5px;border-radius:10px;
  padding:8px 10px;margin-top:9px;line-height:1.5}

/* ---------- detail overlay (products / media) ---------- */
.k30-page .ovl{position:fixed;inset:0;background:#01070fd9;z-index:120;display:none;padding:16px;overflow:auto}
.k30-page .ovl.on{display:block}
.k30-page .sheet{max-width:560px;margin:26px auto;background:linear-gradient(160deg,#0b2c4c,#041526);
  border:1px solid #b98b37;border-radius:22px;padding:16px;box-shadow:var(--shadow,0 16px 50px #000a,0 0 24px #d79b2330)}
.k30-page .sheet h2{margin:4px 0 2px;font-size:19px}
.k30-page .sheet .close{float:right;border:1px solid #4d6f8e;background:#0a2947;color:#fff;border-radius:10px;
  min-height:44px;padding:8px 12px;cursor:pointer}
.k30-page .fields{display:grid;gap:9px;margin-top:12px}
.k30-page .field{background:#041a2e;border:1px solid #2c5675;border-radius:13px;padding:10px 11px}
.k30-page .field label{display:block;font-size:10px;letter-spacing:1.1px;color:var(--gold);font-weight:900;
  margin-bottom:4px}
.k30-page .field div{font-size:13px;line-height:1.65;color:#e7f1fa}
.k30-page .field .none{color:#7e9db8;font-style:italic}
.k30-page .field ul{margin:5px 0 0;padding-left:18px;font-size:13px;line-height:1.7}
.k30-page .field .open{width:100%;min-height:44px;border:1px solid #9b7835;
  background:linear-gradient(180deg,#ffe991,#e0b64a);color:#17202a;border-radius:12px;padding:11px;
  font-size:14px;font-weight:900;cursor:pointer}

/* ---------- ring roadmaps ---------- */
.k30-page .ringwrap{position:relative;width:min(92vw,430px);aspect-ratio:1/1;margin:10px auto 58px}
.k30-page .ringwrap svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.k30-page .ringwrap svg .flow{fill:none;stroke-width:1.6;stroke-linecap:round}
.k30-page .ringcenter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46%;
  text-align:center}
.k30-page .ringcenter b{display:block;font-size:15px;line-height:1.35}
.k30-page .ringcenter small{display:block;font-size:9.5px;letter-spacing:1.2px;color:var(--muted);margin-top:5px}
.k30-page .node{position:absolute;width:25%;aspect-ratio:1/1;transform:translate(-50%,-50%);border-radius:50%;
  border:2.5px solid #b88b37;background:linear-gradient(150deg,#0d3558,#041729);color:#fff;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 3px;
  text-align:center;box-shadow:0 6px 18px #0007;transition:transform .15s ease,box-shadow .15s ease}
.k30-page .node .em{font-size:14px;line-height:1}
.k30-page .node b{font-size:13.5px;color:var(--gold);line-height:1;font-weight:900}
.k30-page .node i{font-style:normal;font-size:10.5px;line-height:1.28;display:block;padding:0 3px;font-weight:700}
.k30-page .node.on{outline:3px solid var(--gold);outline-offset:2px;box-shadow:0 0 26px #ffd66e88;
  transform:translate(-50%,-50%) scale(1.07);z-index:4}
.k30-page .ring--learn .node{border-radius:18px;border-color:#3fa7d8;background:linear-gradient(150deg,#0a3a5c,#04243a)}
.k30-page .ring--learn .node b{color:var(--cyan)}
.k30-page .ring--learn .ringcenter b{color:var(--cyan)}
.k30-page .ring--learn .node.on{outline-color:var(--gold);border-color:var(--cyan);
  background:linear-gradient(150deg,#0a2740,#02101f);box-shadow:0 0 26px #5fc8ff99,inset 0 0 14px #ffd66e33}
.k30-page .cycle-detail{margin-top:14px}
.k30-page .cycle-detail .stepno{font-size:11px;letter-spacing:2px;color:var(--gold);font-weight:900}
.k30-page .cycle-detail h3{margin:3px 0 8px;font-size:18px}
.k30-page .stepnav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;
  flex-wrap:wrap}
.k30-page .navb{min-height:44px;border:1px solid #4d6f8e;background:#0a2947;color:#e7f1fa;border-radius:10px;
  padding:10px 14px;font-size:12.5px;font-weight:800;cursor:pointer;text-align:left}
.k30-page .navb.gold{background:linear-gradient(180deg,#ffe991,#e0b64a);color:#17202a;border-color:#9b7835}
.k30-page .dots{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;flex:1;min-width:150px}
.k30-page .dots button{width:30px;height:30px;border-radius:50%;border:1px solid #4d6f8e;background:#04182b;
  color:#c8d9e8;font-size:11.5px;font-weight:800;cursor:pointer;padding:0}
.k30-page .dots button.on{background:linear-gradient(180deg,#ffe991,#e0b64a);color:#17202a;border-color:#ffe9a0}
.k30-page .disclaimer{margin-top:12px;border:1px dashed #7a6a3a;background:#0a1c30;border-radius:14px;
  padding:10px 12px;font-size:11.5px;color:#f0d9a4;line-height:1.6}
.k30-page .reconnect{position:absolute;left:50%;bottom:-50px;transform:translateX(-50%);background:#02101fee;
  border:1px dashed #ffd66e;color:#ffd66e;font-size:11px;font-weight:800;padding:6px 13px;border-radius:99px;
  text-align:center;max-width:96vw}

/* ---------- responsive ---------- */
@media(min-width:600px){
  .k30-page .k30-grid{grid-template-columns:1fr 1fr}
  .k30-page .tools{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:1000px){
  .k30-page h1{font-size:26px}
  .k30-page .k30-grid{grid-template-columns:repeat(3,1fr);gap:14px}
  .k30-page .ringwrap{width:min(46vw,470px)}
}
