/* =========================================================================
   FIT KIT — PT PRO (liquid glass, bảng màu Navy / Mint / Coral)
   Mọi lớp bắt đầu bằng .ptp- ; vùng chạm ≥ 44px, chữ ≥ 12px, ô nhập 16px.
   ========================================================================= */

/* ---- Phạm vi chung: chữ tối thiểu 12px trong UI của module ---- */
.ptp-sheet .small-note, .ptp-tabbody .small-note, .ptp-dash .small-note, .ptp-filter .small-note,
.ptp-infosum .small-note, .ptp-bodycard .small-note, .ptp-sched .small-note, .ptp-note{ font-size:12px; line-height:1.5; color:rgba(255,255,255,.74); }
.ptp-note{ margin-top:8px; }
.ptp-sheet .st, .ptp-tabbody .st, .ptp-dash .st, .ptp-sched .st{ font-size:12px; letter-spacing:.2px; text-transform:none; }
.ptp-sheet .date-chip small, .ptp-dash .date-chip small{ font-size:12px; text-transform:none; }
.ptp-sheet .field label{ font-size:12px; }
.ptp-sheet .field input, .ptp-sheet .field select, .ptp-sheet .field textarea{ font-size:16px; }
.ptp-sheet .btn-sm, .ptp-tabbody .btn-sm, .ptp-dash .btn-sm, .ptp-sched .btn-sm, .ptp-infosum .btn-sm, .ptp-bodycard .btn-sm{ min-height:44px; font-size:13px; padding:8px 14px; }
.ptp-sheet .pill, .ptp-tabbody .pill, .ptp-filter .pill{ min-height:44px; font-size:13px; padding:8px 14px; flex-shrink:0; }
.ptp-sheet .sheet-header .icon-btn{ width:44px; height:44px; }
.ptp-sheet .list-item .info .meta, .ptp-dash .list-item .info .meta{ font-size:12px; }
.ptp-right{ margin-left:auto; }
.ptp-row2{ display:flex; gap:8px; margin-top:10px; }
.ptp-row2 > *{ flex:1; }
.ptp-sub{ font-size:12px; font-weight:600; letter-spacing:.4px; text-transform:uppercase; color:var(--mint-2); margin:12px 2px 6px; }
.ptp-count{ display:inline-block; min-width:22px; padding:1px 8px; border-radius:10px; background:rgba(94,230,199,.18); color:var(--mint-2); font-size:12px; font-weight:700; text-align:center; }
.ptp-empty{ display:flex; flex-direction:column; align-items:center; gap:6px; padding:22px 0; color:rgba(255,255,255,.62); font-size:13px; text-align:center; }
.ptp-empty .material-symbols-rounded{ font-size:34px; color:var(--mint); }
.ptp-empty.sm{ padding:14px 0; }
.ptp-warn{ color:var(--coral-2) !important; }

/* Nút biểu tượng 44×44 */
.ptp-ib{ width:44px; height:44px; flex-shrink:0; border-radius:14px; border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.12); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer;
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); transition:background .2s, transform .12s; }
.ptp-ib:active{ transform:scale(.94); }
.ptp-ib:disabled{ opacity:.35; }
.ptp-ib .material-symbols-rounded{ font-size:20px; }
.ptp-ib.ok{ background:rgba(94,230,199,.18); border-color:rgba(94,230,199,.45); color:var(--mint); }
.ptp-ib.ptp-absent{ background:rgba(255,122,69,.14); border-color:rgba(255,122,69,.4); color:var(--coral-2) !important; }
.ptp-ib.ghost{ background:transparent; border-color:transparent; color:rgba(255,255,255,.6); }

/* Thẻ nhãn nhỏ */
.ptp-tags{ display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
.ptp-tag{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; line-height:1.2; padding:3px 8px; border-radius:8px;
  background:rgba(255,255,255,.12); color:rgba(255,255,255,.85); white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.ptp-tag .material-symbols-rounded{ font-size:13px; }
.ptp-tag.hi{ background:rgba(255,122,69,.22); color:#FFC2A6; }
.ptp-tag.mid{ background:rgba(255,176,138,.14); color:var(--coral-2); }
.ptp-tag.ok{ background:rgba(94,230,199,.16); color:var(--mint-2); }

/* Hộp cảnh báo */
.ptp-alert{ display:flex; gap:10px; align-items:flex-start; padding:12px; margin-top:10px; border-radius:16px;
  background:linear-gradient(160deg, rgba(255,122,69,.20), rgba(255,122,69,.07)); border:1px solid rgba(255,122,69,.38); }
.ptp-alert > .material-symbols-rounded{ color:var(--coral-2); font-size:20px; margin-top:1px; }
.ptp-alert > div{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.ptp-alert b{ font-size:14px; font-weight:600; }
.ptp-alert small{ font-size:12px; line-height:1.45; color:rgba(255,255,255,.82); }
.ptp-alert small b{ font-size:12px; }
.ptp-banner{ cursor:pointer; margin-top:0; }
.ptp-banner > .material-symbols-rounded:last-child{ color:rgba(255,255,255,.6); align-self:center; }
.ptp-ok{ display:flex; align-items:center; gap:6px; color:var(--mint-2) !important; margin-top:10px; }
.ptp-ok .material-symbols-rounded{ font-size:16px; }

/* Đoạn chip cuộn ngang */
.ptp-chips{ display:flex; gap:6px; overflow-x:auto; padding:2px 0 8px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.ptp-chips::-webkit-scrollbar{ display:none; }
.ptp-chips .pill i{ font-style:normal; opacity:.7; margin-left:2px; }
.ptp-seg{ margin-bottom:4px; }
.ptp-seg button{ min-height:44px; font-size:14px; }

/* Cặp nhãn – giá trị */
.ptp-kv{ display:flex; justify-content:space-between; gap:10px; align-items:baseline; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.08); font-size:13px; }
.ptp-kv:last-child{ border-bottom:none; }
.ptp-kv span{ color:rgba(255,255,255,.72); }
.ptp-kv b{ font-weight:600; text-align:right; }
.ptp-kv b i{ font-style:normal; color:rgba(255,255,255,.6); font-weight:500; }

/* =========================================================================
   MÀN PT: KPI · CÔNG CỤ · VIỆC CẦN LÀM · TÌM / LỌC
   ========================================================================= */
.ptp-dash{ display:flex; flex-direction:column; gap:12px; margin:12px 0; }
.ptp-kpi .stat-box{ cursor:pointer; color:#fff; font-family:var(--font-ui); min-height:64px; transition:transform .12s; }
.ptp-kpi .stat-box:active{ transform:scale(.97); }
.ptp-kpi .stat-box .num{ font-size:19px; white-space:nowrap; }
.ptp-kpi .stat-box .cap, .ptp-kpi2 .stat-box .cap{ font-size:12px; line-height:1.3; }
.ptp-kpi .stat-box.hot{ border-color:rgba(255,122,69,.55) !important; background:linear-gradient(160deg, rgba(255,122,69,.26), rgba(255,122,69,.08)) !important; }
.ptp-kpi .stat-box.hot .num{ color:var(--coral-2); }

.ptp-tools{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.ptp-tools button{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; min-height:104px; padding:12px 10px; text-align:left; color:#fff; cursor:pointer;
  background:var(--glass); -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur); border:1px solid rgba(255,255,255,.14); border-radius:20px;
  transition:transform .15s var(--e-out, ease), border-color .2s; }
.ptp-tools button:active{ transform:scale(.97); border-color:var(--mint); }
.ptp-tools .material-symbols-rounded{ width:36px; height:36px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:19px;
  background:rgba(94,230,199,.16); color:var(--mint); }
.ptp-tools button:nth-child(3) .material-symbols-rounded{ background:rgba(255,122,69,.18); color:var(--coral-2); }
.ptp-tools b{ font-size:13px; font-weight:600; line-height:1.2; }
.ptp-tools small{ font-size:12px; line-height:1.3; color:rgba(255,255,255,.68); }
.ptp-tools small em{ font-style:normal; color:var(--coral-2); }

.ptp-todo .card-title{ margin-bottom:4px; }
.ptp-todo .ptp-sub:first-of-type{ margin-top:6px; }
.ptp-sess{ display:flex; align-items:center; gap:6px; padding:6px 0; border-bottom:1px solid rgba(255,255,255,.08); position:relative; }
.ptp-sess:last-of-type{ border-bottom:none; }
.ptp-sess-main{ flex:1; min-width:0; display:flex; align-items:center; gap:10px; background:none; border:none; color:#fff; text-align:left; padding:0; cursor:pointer; min-height:48px; }
.ptp-sess-main .info{ min-width:0; flex:1; }
.ptp-sess-main .name{ font-weight:600; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ptp-sess-main .meta{ font-size:12px; color:rgba(255,255,255,.7); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ptp-sess.conflict .date-chip{ border-color:var(--coral) !important; }
.ptp-dot{ position:absolute; left:46px; top:8px; width:8px; height:8px; border-radius:50%; background:var(--coral); box-shadow:0 0 0 2px rgba(6,26,36,.8); }

.ptp-todo-item{ display:flex; align-items:center; gap:8px; padding:8px 0 8px 10px; border-left:3px solid rgba(255,255,255,.2); margin:6px 0; border-radius:2px; }
.ptp-todo-item.lv3{ border-left-color:var(--coral); }
.ptp-todo-item.lv2{ border-left-color:var(--coral-2); }
.ptp-todo-item.lv1{ border-left-color:var(--mint-3); }
.ptp-todo-item > .material-symbols-rounded{ font-size:18px; color:var(--coral-2); }
.ptp-todo-item.lv1 > .material-symbols-rounded{ color:var(--mint); }
.ptp-todo-item .t{ flex:1; min-width:0; display:flex; flex-direction:column; }
.ptp-todo-item .t b{ font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ptp-todo-item .t small{ font-size:12px; color:rgba(255,255,255,.75); line-height:1.35; }
.ptp-todo-item .btn{ flex-shrink:0; }
.ptp-more{ width:100%; min-height:44px; margin-top:6px; display:flex; align-items:center; justify-content:center; gap:6px; background:rgba(255,255,255,.08);
  border:1px dashed rgba(255,255,255,.22); border-radius:14px; color:rgba(255,255,255,.85); font-size:13px; cursor:pointer; }
.ptp-more .material-symbols-rounded{ font-size:16px; }

.ptp-filter{ display:flex; flex-direction:column; gap:6px; margin-top:14px; }
.ptp-search{ display:flex; align-items:center; gap:8px; min-height:48px; padding:0 14px; border-radius:16px;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.18); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); }
.ptp-search:focus-within{ border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.16); }
.ptp-search .material-symbols-rounded{ color:rgba(255,255,255,.7); font-size:19px; }
.ptp-search input{ flex:1; min-width:0; background:none; border:none; outline:none; color:#fff; font-size:16px; height:46px; }
.ptp-search input::placeholder{ color:rgba(255,255,255,.5); }
.ptp-sortrow{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ptp-sort{ display:flex; align-items:center; gap:4px; color:rgba(255,255,255,.75); }
.ptp-sort .material-symbols-rounded{ font-size:17px; }
.ptp-sort select{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); color:#fff; border-radius:12px; min-height:44px; padding:0 10px; font-size:16px; max-width:210px; }
.ptp-sort select option, .ptp-sheet select option{ color:#061A24; }
.ptp-list{ margin-top:8px !important; }

/* =========================================================================
   LỊCH TỔNG HỢP
   ========================================================================= */
.ptp-calnav{ display:flex; align-items:center; gap:8px; margin:12px 0 4px; }
.ptp-calnav .lbl{ flex:1; text-align:center; display:flex; flex-direction:column; }
.ptp-calnav .lbl b{ font-family:var(--font-head); font-size:17px; font-weight:600; }
.ptp-calnav .lbl small{ font-size:12px; color:rgba(255,255,255,.7); }
.ptp-calnav .lbl em{ font-style:normal; color:var(--coral-2); }
.ptp-today-btn{ margin:0 auto; min-height:44px; }
.ptp-tl{ position:relative; margin:12px 0 4px; }
.ptp-tl .hr{ position:absolute; left:0; right:0; border-top:1px solid rgba(255,255,255,.08); }
.ptp-tl .hr span{ position:absolute; top:-8px; left:0; width:44px; font-size:12px; color:rgba(255,255,255,.55); background:transparent; }
.ptp-now{ position:absolute; left:48px; right:0; border-top:2px solid var(--coral); z-index:2; pointer-events:none; }
.ptp-now::before{ content:""; position:absolute; left:-5px; top:-6px; width:10px; height:10px; border-radius:50%; background:var(--coral); }
.ptp-blk{ position:absolute; z-index:1; display:flex; flex-direction:column; align-items:flex-start; gap:1px; overflow:hidden; text-align:left; cursor:pointer;
  padding:5px 8px; border-radius:12px; color:#fff; border:1px solid rgba(94,230,199,.5);
  background:linear-gradient(160deg, rgba(94,230,199,.30), rgba(94,230,199,.12)); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.ptp-blk b{ font-size:12px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.ptp-blk small{ font-size:12px; color:rgba(255,255,255,.8); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.ptp-blk.done{ background:linear-gradient(160deg, rgba(255,255,255,.18), rgba(255,255,255,.08)); border-color:rgba(255,255,255,.25); }
.ptp-blk.cancel{ opacity:.5; background:rgba(255,255,255,.06); border-style:dashed; border-color:rgba(255,255,255,.25); }
.ptp-blk.conflict{ border:1.5px solid var(--coral); background:linear-gradient(160deg, rgba(255,122,69,.34), rgba(255,122,69,.12)); padding-right:24px; }
.ptp-blk .cf{ position:absolute; right:5px; top:5px; font-size:14px; color:#FFC2A6; }
.ptp-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin:12px 0 6px; }
.ptp-wd{ position:relative; min-height:64px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; cursor:pointer; color:#fff;
  border-radius:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); padding:4px 0; }
.ptp-wd small{ font-size:12px; color:rgba(255,255,255,.65); }
.ptp-wd b{ font-family:var(--font-head); font-size:16px; font-weight:600; }
.ptp-wd span{ font-size:12px; color:var(--mint-2); min-height:14px; }
.ptp-wd.today{ border-color:var(--mint); background:rgba(94,230,199,.14); }
.ptp-wd .cf{ position:absolute; top:5px; right:5px; width:7px; height:7px; border-radius:50%; background:var(--coral); }
.ptp-cal-row{ width:100%; color:#fff; text-align:left; cursor:pointer; margin-top:6px; }
.ptp-cal-row.conflict{ border-color:rgba(255,122,69,.6) !important; }

/* =========================================================================
   GIAO GIÁO ÁN
   ========================================================================= */
.ptp-tpls{ display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.ptp-tpl{ width:100%; color:#fff; text-align:left; cursor:pointer; min-height:64px; }
.ptp-tpl .name{ font-size:14px; }
.ptp-tpl .ptp-tag{ margin-left:4px; vertical-align:middle; }
.ptp-days{ display:flex; flex-direction:column; gap:6px; }
.ptp-dayrow{ display:flex; align-items:center; gap:10px; width:100%; min-height:48px; padding:6px 12px; border-radius:14px; cursor:pointer; text-align:left; color:#fff;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); transition:background .2s, border-color .2s; }
.ptp-dayrow .k{ width:30px; font-family:var(--font-head); font-weight:600; font-size:14px; color:var(--mint-2); }
.ptp-dayrow .t{ flex:1; min-width:0; font-size:13px; line-height:1.35; }
.ptp-dayrow .t em{ font-style:normal; color:rgba(255,255,255,.6); }
.ptp-dayrow .n{ font-size:12px; color:rgba(255,255,255,.6); }
.ptp-dayrow .ck{ width:26px; height:26px; border-radius:50%; border:2px solid rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; color:transparent; flex-shrink:0; }
.ptp-dayrow .ck .material-symbols-rounded{ font-size:16px; }
.ptp-dayrow.on{ background:rgba(94,230,199,.12); border-color:rgba(94,230,199,.5); }
.ptp-dayrow.on .ck{ background:var(--mint); border-color:var(--mint); color:var(--navy); }
.ptp-dayrow:disabled{ opacity:.4; cursor:default; }
.ptp-toggle{ margin-top:10px; }
.ptp-sumbox{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:14px; }
.ptp-sumbox > div{ text-align:center; padding:10px 4px; border-radius:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); display:flex; flex-direction:column; }
.ptp-sumbox b{ font-family:var(--font-head); font-size:20px; font-weight:600; color:var(--mint-2); }
.ptp-sumbox small{ font-size:12px; color:rgba(255,255,255,.7); }
.ptp-prev{ display:grid; grid-template-columns:1fr auto; gap:0 8px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.08); font-size:13px; }
.ptp-prev span{ grid-column:1/3; font-size:12px; color:var(--mint-2); }
.ptp-prev small{ font-size:12px; color:rgba(255,255,255,.65); align-self:center; }
.ptp-sched{ display:flex; flex-direction:column; gap:10px; margin-top:8px; }
.ptp-batch .card-title{ margin-bottom:2px; }

/* =========================================================================
   GÓI TẬP & DOANH THU
   ========================================================================= */
.ptp-pkg-hero .headline{ font-size:22px; margin-top:4px; }
.ptp-pkg-nums{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:14px 0 12px; }
.ptp-pkg-nums > div{ display:flex; flex-direction:column; }
.ptp-pkg-nums b{ font-family:var(--font-head); font-size:28px; font-weight:600; line-height:1.05; color:var(--mint); }
.ptp-pkg-nums b i{ font-style:normal; font-size:15px; color:rgba(255,255,255,.55); }
.ptp-pkg-nums small{ font-size:12px; color:rgba(255,255,255,.7); line-height:1.3; }
.ptp-pkg-hero .progress-track{ margin-bottom:8px; }
.ptp-pay{ display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.ptp-pay:last-child{ border-bottom:none; }
.ptp-pay .l{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ptp-pay .l b{ font-size:14px; font-weight:600; }
.ptp-pay .l small{ font-size:12px; color:rgba(255,255,255,.7); line-height:1.35; }
.ptp-pay .amt{ font-size:14px; font-weight:600; color:var(--mint-2); white-space:nowrap; }
.ptp-money{ font-size:12px; color:var(--mint-2); min-height:15px; }
.ptp-rev-hero{ margin:12px 0; padding:16px; border-radius:22px; text-align:center;
  background:linear-gradient(160deg, rgba(94,230,199,.26), rgba(94,230,199,.06)); border:1px solid rgba(94,230,199,.4); }
.ptp-rev-hero small{ font-size:12px; color:rgba(255,255,255,.75); text-transform:uppercase; letter-spacing:.5px; }
.ptp-rev-hero b{ display:block; font-family:var(--font-head); font-size:30px; font-weight:600; margin-top:2px; }
.ptp-kpi2{ margin-bottom:12px; }
.ptp-kpi2 .num{ font-size:19px; }
.ptp-kpi2 .num i{ font-style:normal; font-size:13px; color:rgba(255,255,255,.55); }
.ptp-bars{ display:flex; align-items:flex-end; gap:6px; height:150px; padding-top:20px; }
.ptp-bars .b{ flex:1; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:4px; background:none; border:none; color:#fff; cursor:pointer; padding:0; min-width:0; }
.ptp-bars .b i{ display:block; width:100%; min-height:3px; border-radius:8px 8px 3px 3px; background:linear-gradient(180deg, rgba(94,230,199,.6), rgba(94,230,199,.25)); }
.ptp-bars .b.on i{ background:linear-gradient(180deg, var(--mint), var(--mint-3)); }
.ptp-bars .b .v{ font-size:12px; color:rgba(255,255,255,.75); white-space:nowrap; }
.ptp-bars .b small{ font-size:12px; color:rgba(255,255,255,.65); }
.ptp-bars .b.on small{ color:var(--mint-2); font-weight:600; }

/* =========================================================================
   HỒ SƠ SỨC KHOẺ
   ========================================================================= */
.ptp-ov{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.ptp-ov > div{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:1px; padding:10px 4px; border-radius:16px;
  background:var(--glass); -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur); border:1px solid rgba(255,255,255,.14); }
.ptp-ov small{ font-size:12px; color:rgba(255,255,255,.68); }
.ptp-ov b{ font-family:var(--font-head); font-size:20px; font-weight:600; line-height:1.15; }
.ptp-ov b em{ font-style:normal; font-size:12px; color:rgba(255,255,255,.55); }
.ptp-ov i{ font-style:normal; font-size:12px; line-height:1.25; color:var(--mint-2); }
.ptp-cond{ display:flex; flex-direction:column; gap:3px; width:100%; text-align:left; color:#fff; cursor:pointer; min-height:48px; padding:10px 0; background:none; border:none; border-bottom:1px solid rgba(255,255,255,.08); }
.ptp-cond:last-child{ border-bottom:none; }
.ptp-cond .top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ptp-cond .top b{ font-size:14px; font-weight:600; }
.ptp-cond small{ font-size:12px; color:rgba(255,255,255,.72); line-height:1.4; }
.ptp-cond small.av{ display:flex; gap:5px; color:var(--coral-2); }
.ptp-cond small.av .material-symbols-rounded{ font-size:14px; margin-top:1px; }
.ptp-goal .main{ font-family:var(--font-head); font-size:20px; font-weight:600; }
.ptp-goal > small{ display:block; font-size:12px; color:rgba(255,255,255,.7); margin-top:2px; }
.ptp-kvs{ margin:8px 0 6px; }
.ptp-goal .progress-row{ display:flex; justify-content:space-between; font-size:12px; margin:10px 0 6px; color:rgba(255,255,255,.75); }
.ptp-chart{ margin:2px 0 6px; }
.ptp-svg{ width:100%; height:auto; display:block; overflow:visible; }
.ptp-svg .g{ stroke:rgba(255,255,255,.08); stroke-width:1; }
.ptp-svg .ln{ fill:none; stroke:var(--mint, #5EE6C7); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.ptp-svg .d{ fill:#061A24; stroke:var(--mint, #5EE6C7); stroke-width:2; }
.ptp-svg .dl{ fill:var(--mint, #5EE6C7); stroke:#fff; stroke-width:2; }
.ptp-svg .t{ stroke:var(--coral, #FF7A45); stroke-width:1.5; stroke-dasharray:5 4; }
.ptp-svg text{ font-family:var(--font-ui, Inter, sans-serif); font-size:12.5px; fill:rgba(255,255,255,.72); }
.ptp-svg text.v.last{ fill:#fff; font-weight:600; }
.ptp-svg text.tl{ fill:var(--coral-2, #FFB08A); font-size:12px; }
.ptp-svg text.x{ fill:rgba(255,255,255,.55); font-size:12px; }
.ptp-mgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:6px; }
.ptp-mgrid .c{ display:flex; flex-direction:column; padding:8px 6px; border-radius:12px; background:rgba(255,255,255,.07); min-width:0; }
.ptp-mgrid .c small{ font-size:12px; color:rgba(255,255,255,.65); }
.ptp-mgrid .c b{ font-size:15px; font-weight:600; white-space:nowrap; }
.ptp-mgrid .c b i{ font-style:normal; font-size:12px; color:rgba(255,255,255,.55); margin-left:2px; }
.ptp-mgrid .c em{ font-style:normal; font-size:12px; color:rgba(255,255,255,.7); }
.ptp-mgrid .c em.up{ color:var(--mint); }
.ptp-mgrid .c em.down{ color:var(--coral-2); }
.ptp-hist{ margin-top:10px; border-radius:14px; background:rgba(255,255,255,.05); padding:0 10px; }
.ptp-hist summary{ min-height:44px; display:flex; align-items:center; font-size:13px; font-weight:600; cursor:pointer; color:rgba(255,255,255,.85); }
.ptp-mrow{ display:flex; align-items:center; gap:8px; padding:6px 0; border-top:1px solid rgba(255,255,255,.08); font-size:12px; }
.ptp-mrow b{ width:78px; flex-shrink:0; font-size:12px; }
.ptp-mrow span{ flex:1; color:rgba(255,255,255,.75); line-height:1.4; }
.ptp-mform{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.ptp-photos{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.ptp-ph{ position:relative; aspect-ratio:3/4; border-radius:14px; overflow:hidden; padding:0; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); cursor:pointer; }
.ptp-ph img{ width:100%; height:100%; object-fit:cover; display:block; }
.ptp-ph span{ position:absolute; left:0; right:0; bottom:0; padding:14px 6px 5px; font-size:12px; color:#fff; text-align:left;
  background:linear-gradient(180deg, transparent, rgba(6,26,36,.85)); }
.ptp-drop{ width:100%; min-height:180px; margin-top:12px; border-radius:18px; border:1.5px dashed rgba(255,255,255,.3); background:rgba(255,255,255,.06);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color:#fff; cursor:pointer; overflow:hidden; padding:0; }
.ptp-drop .material-symbols-rounded{ font-size:34px; color:var(--mint); }
.ptp-drop span{ font-size:15px; font-weight:600; }
.ptp-drop small{ font-size:12px; color:rgba(255,255,255,.65); }
.ptp-drop img{ width:100%; max-height:340px; object-fit:contain; display:block; }
.ptp-big{ width:100%; max-height:60vh; object-fit:contain; border-radius:18px; display:block; background:rgba(255,255,255,.05); }
.ptp-cmp{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.ptp-cmp > div{ display:flex; flex-direction:column; gap:6px; }
.ptp-cmp img{ width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:14px; border:1px solid rgba(255,255,255,.16); }
.ptp-cmp small{ font-size:12px; color:var(--mint-2); text-align:center; }
.ptp-cmp .field select{ padding:10px 8px; font-size:16px; }
.ptp-parq{ display:flex; flex-direction:column; gap:10px; margin-top:10px; }
.ptp-q{ padding:12px; border-radius:16px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); }
.ptp-q p{ font-size:14px; line-height:1.45; }
.ptp-yn{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.ptp-yn button{ min-height:44px; border-radius:12px; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.08); color:#fff; font-size:15px; font-weight:600; cursor:pointer; }
.ptp-yn button.on.yes{ background:rgba(255,122,69,.28); border-color:var(--coral); color:#fff; }
.ptp-yn button.on.no{ background:var(--mint); border-color:var(--mint); color:var(--navy); }

/* Thẻ chèn vào tab cũ */
.ptp-sumgrid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ptp-sumgrid button{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-height:56px; padding:10px; border-radius:14px; text-align:left; cursor:pointer; color:#fff;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); }
.ptp-sumgrid small{ font-size:12px; color:rgba(255,255,255,.65); }
.ptp-sumgrid b{ font-size:14px; font-weight:600; }
.ptp-sumgrid b i{ font-style:normal; font-weight:500; font-size:12px; color:rgba(255,255,255,.65); }
.ptp-infosum .ptp-note .material-symbols-rounded{ font-size:14px; color:var(--coral-2); vertical-align:-2px; }

@media (max-width:360px){
  .ptp-ov{ grid-template-columns:repeat(2,1fr); }
  .ptp-mgrid{ grid-template-columns:repeat(3,1fr); }
  .ptp-tools b{ font-size:12px; }
}
@media (prefers-reduced-motion: reduce){
  .ptp-tools button, .ptp-ib, .ptp-kpi .stat-box{ transition:none; }
}
