/* FPT Field KPI — giao diện front-end. Mọi style đặt trong .fk-app để không ảnh hưởng theme. */
.fk-app{--fk-blue:#0a4aa6;--fk-blue-d:#073a85;--fk-orange:#e8590c;--fk-ink:#1b2430;--fk-mut:#5b6675;--fk-line:#dfe5ee;--fk-bg:#f4f6fa;--fk-card:#fff;--fk-green:#0f7b4f;--fk-yellow:#9a6700;--fk-red:#b42318;
 font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--fk-ink);background:var(--fk-bg);padding:16px;border-radius:12px;max-width:1180px;margin:0 auto}
.fk-app *{box-sizing:border-box}
.fk-app a{color:var(--fk-blue)}
.fk-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.fk-head small{display:block;color:var(--fk-mut)}
.fk-role{background:#e8f0fd;color:var(--fk-blue-d);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;margin-left:6px}
.fk-title{font-size:22px;margin:14px 0 10px;color:var(--fk-ink)}
.fk-nav{display:flex;gap:4px;overflow-x:auto;background:var(--fk-card);border:1px solid var(--fk-line);border-radius:10px;padding:4px;margin-bottom:12px;-webkit-overflow-scrolling:touch}
.fk-nav a{white-space:nowrap;padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--fk-mut);font-weight:600}
.fk-nav a:hover{background:var(--fk-bg)}
.fk-nav a.is-active,.fk-tabs a.is-active{background:var(--fk-blue);color:#fff}
.fk-dot{background:var(--fk-orange);color:#fff;border-radius:999px;padding:0 6px;font-size:11px;margin-left:4px}
.fk-tabs{display:inline-flex;gap:4px;background:var(--fk-card);border:1px solid var(--fk-line);border-radius:10px;padding:4px;margin:6px 0 12px}
.fk-tabs a{padding:7px 14px;border-radius:8px;text-decoration:none;color:var(--fk-mut);font-weight:600}
.fk-card{background:var(--fk-card);border:1px solid var(--fk-line);border-radius:12px;padding:16px;margin-bottom:14px}
.fk-card h2{font-size:17px;margin:0 0 10px}
.fk-card-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.fk-card-h h2{margin:0}
.fk-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 14px}
.fk-tile{background:var(--fk-bg);border-radius:10px;padding:10px 12px}
.fk-tile span{display:block;color:var(--fk-mut);font-size:12px}
.fk-tile b{font-size:24px;line-height:1.2}
.fk-tile small{display:block;color:var(--fk-mut);font-size:12px}
.fk-scroll{overflow-x:auto}
.fk-table{width:100%;border-collapse:collapse}
.fk-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fk-mut);border-bottom:1px solid var(--fk-line);padding:8px}
.fk-table td{padding:9px 8px;border-bottom:1px solid var(--fk-line);vertical-align:top}
.fk-table .r{text-align:right;font-variant-numeric:tabular-nums}
.fk-table small{display:block;color:var(--fk-mut);font-size:12px}
.fk-table tr.fk-me{background:#eef4ff}
.fk-rank{display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--fk-bg);align-items:center;justify-content:center;font-weight:700;font-size:12px}
tr:first-child .fk-rank{background:var(--fk-orange);color:#fff}
.fk-bar{position:relative;height:10px;background:#e7ecf4;border-radius:999px;overflow:visible;margin:4px 0}
.fk-bar span{display:block;height:100%;border-radius:999px}
.fk-bar i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--fk-ink);opacity:.55}
.fk-bar-green{background:var(--fk-green)}.fk-bar-yellow{background:#d99a00}.fk-bar-red{background:var(--fk-red)}.fk-bar-none{background:#9aa7b8}
.fk-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.fk-green{background:#e3f5ec;color:var(--fk-green)}.fk-yellow{background:#fff3d6;color:var(--fk-yellow)}.fk-red{background:#fde8e6;color:var(--fk-red)}.fk-none{background:#eceff4;color:var(--fk-mut)}
.fk-r-draft{background:#eceff4;color:var(--fk-mut)}.fk-r-submitted{background:#fff3d6;color:var(--fk-yellow)}.fk-r-rejected{background:#fde8e6;color:var(--fk-red)}.fk-r-approved{background:#e3f5ec;color:var(--fk-green)}.fk-r-locked{background:#e8f0fd;color:var(--fk-blue-d)}
.fk-alert{border-radius:10px;padding:10px 14px;margin:8px 0 12px;border:1px solid}
.fk-alert-ok{background:#e9f7f0;border-color:#b6e3cd;color:#0b5c3b}.fk-alert-err{background:#fdecea;border-color:#f3b8b2;color:#8f1d12}.fk-alert-warn{background:#fff6dd;border-color:#f0d58a;color:#6b4a00}
.fk-form label{display:block;font-weight:600;margin:10px 0;font-size:14px}
.fk-form input[type=text],.fk-form input[type=date],.fk-form input[type=number],.fk-form select,.fk-form textarea,.fk-filter input,.fk-filter select,.fk-reject input{display:block;width:100%;min-height:42px;padding:8px 10px;border:1px solid #b9c3d2;border-radius:8px;background:#fff;font:inherit;margin-top:4px}
.fk-form fieldset{border:1px solid var(--fk-line);border-radius:10px;margin:12px 0;padding:6px 12px 12px}
.fk-form legend{font-weight:700;padding:0 6px}
.fk-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.fk-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}
.fk-checks{display:flex;flex-wrap:wrap;gap:8px}
.fk-form .fk-check{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--fk-line);border-radius:8px;padding:8px 12px;margin:0;font-weight:500;background:#fff}
.fk-form .fk-check input{margin:0}
.fk-btn{display:inline-block;min-height:42px;padding:9px 18px;border:0;border-radius:8px;background:var(--fk-blue);color:#fff!important;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.fk-btn:hover{background:var(--fk-blue-d)}
.fk-btn-2{background:#fff;color:var(--fk-blue)!important;border:1px solid var(--fk-blue)}.fk-btn-2:hover{background:#eef4ff}
.fk-btn-danger{background:var(--fk-red)}.fk-btn-danger:hover{background:#8f1d12}
.fk-link{background:none;border:0;color:var(--fk-red);cursor:pointer;padding:4px 0;font:inherit;text-decoration:underline}
.fk-btn:focus-visible,.fk-app a:focus-visible,.fk-app input:focus-visible,.fk-app select:focus-visible,.fk-app textarea:focus-visible{outline:3px solid #f6a15c;outline-offset:2px}
.fk-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.fk-inline{display:inline-flex;gap:6px;align-items:center;margin:0}
.fk-reject input{min-width:200px;margin:0}
.fk-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:6px 0 12px}
.fk-filter label{font-size:13px;color:var(--fk-mut);font-weight:600}
.fk-filter input,.fk-filter select{width:auto;min-width:130px}
.fk-dl{display:grid;grid-template-columns:200px 1fr;gap:6px 14px;margin:0}.fk-dl dt{color:var(--fk-mut);font-weight:600}.fk-dl dd{margin:0}
.fk-imgs{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.fk-imgs figure{margin:0}.fk-imgs img{width:150px;height:110px;object-fit:cover;border-radius:8px;border:1px solid var(--fk-line)}
.fk-pager{display:flex;gap:4px;flex-wrap:wrap;margin-top:10px}.fk-pager a{padding:5px 10px;border:1px solid var(--fk-line);border-radius:6px;text-decoration:none}.fk-pager a.is-active{background:var(--fk-blue);color:#fff;border-color:var(--fk-blue)}
.fk-list{list-style:none;margin:12px 0 0;padding:0}.fk-list li{padding:10px 8px;border-bottom:1px solid var(--fk-line)}.fk-list li.is-unread{background:#eef4ff;font-weight:600}.fk-list small{display:block;color:var(--fk-mut);font-weight:400}
.fk-empty,.fk-note{color:var(--fk-mut)}
@media (max-width:720px){
 .fk-app{padding:10px;border-radius:0}
 .fk-tiles{grid-template-columns:1fr 1fr}
 .fk-grid2,.fk-grid3{grid-template-columns:1fr}
 .fk-dl{grid-template-columns:1fr}.fk-dl dd{margin-bottom:6px}
 .fk-table thead{display:none}
 .fk-table tr{display:block;border:1px solid var(--fk-line);border-radius:10px;margin-bottom:10px;padding:6px}
 .fk-table td{display:flex;justify-content:space-between;gap:12px;border:0;padding:5px 6px}
 .fk-table td[data-l]::before{content:attr(data-l);color:var(--fk-mut);font-size:12px;flex:0 0 38%}
 .fk-table .r{text-align:right}
 .fk-reject input{min-width:0;width:100%}
}

/* ---- Biểu đồ, việc cần làm, bản in ---- */
.fk-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}
.fk-fig{margin:0;background:var(--fk-card);border:1px solid var(--fk-line);border-radius:12px;padding:14px}
.fk-fig figcaption{font-weight:700;margin-bottom:8px}
.fk-canvas{position:relative;height:280px}
.fk-tiles-6{grid-template-columns:repeat(6,1fr)}
.fk-todo{list-style:none;margin:0;padding:0}.fk-todo li{padding:8px 0;border-bottom:1px solid var(--fk-line)}.fk-todo li:last-child{border:0}
.fk-todo .is-done{color:var(--fk-green);font-weight:600}.fk-todo .is-warn{color:var(--fk-red);font-weight:600}
.fk-todo .fk-btn{margin-left:8px;min-height:34px;padding:5px 12px}
.fk-card.fk-filter{padding:12px}
@media (max-width:960px){.fk-tiles-6{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.fk-charts{grid-template-columns:1fr}.fk-tiles-6{grid-template-columns:1fr 1fr}.fk-canvas{height:240px}}
.fk-print-title{display:none}
@media print{
 body *{visibility:hidden}
 .fk-print,.fk-print *{visibility:visible}
 .fk-print{position:absolute;left:0;top:0;width:100%}
 .fk-noprint,.fk-nav,.fk-head,.fk-filter,.fk-btn,.fk-actions{display:none!important}
 .fk-print-title{display:block;font-size:20px;margin:0 0 4px}
 .fk-app{background:#fff;padding:0}
 .fk-card{break-inside:avoid;border:1px solid #bbb}
}
/* ===== Dashboard v2: thẻ chỉ số có icon, vòng tổng quan, avatar ===== */
.fk-svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fk-nav a{display:flex;align-items:center;gap:10px}
.fk-nav a .fk-dot{margin-left:auto}
.fk-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0 16px}
.fk-stat{background:var(--fk-card);border:1px solid var(--fk-line);border-radius:12px;padding:12px 14px}
.fk-stat-t{display:flex;justify-content:space-between;align-items:center;color:var(--fk-mut);font-size:13px;font-weight:600}
.fk-stat b{display:block;font-size:28px;line-height:1.15;margin:6px 0 2px;letter-spacing:-.02em}
.fk-stat small{color:var(--fk-mut);font-size:12px}
.fk-chip{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-style:normal}
.fk-chip-blue{background:#e6f0ff;color:#1d6fe0}.fk-chip-green{background:#e0f6ec;color:#0f9d6a}.fk-chip-orange{background:#fff0dd;color:#e07b10}.fk-chip-purple{background:#efe9ff;color:#7c5cdb}
.fk-grid-ring{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:14px;margin-bottom:14px}
.fk-grid-ring .fk-canvas{height:260px}
.fk-av{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;font-weight:800;font-size:14px;flex:none}
.fk-toplist{list-style:none;margin:6px 0 0;padding:0}
.fk-toplist li{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--fk-line)}.fk-toplist li:last-child{border:0}
.fk-tl-n{flex:0 0 190px;min-width:0}.fk-tl-n strong,.fk-tl-n small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fk-tl-n small{color:var(--fk-mut);font-size:12px}
.fk-tl-b{flex:1}.fk-toplist b{min-width:36px;text-align:right}
.fk-summary .fk-card-h h2{font-size:18px}
@media (max-width:900px){.fk-stats{grid-template-columns:repeat(2,1fr)}.fk-grid-ring{grid-template-columns:1fr}.fk-tl-n{flex-basis:120px}}
@media (max-width:480px){.fk-stat b{font-size:24px}}
.fk-tl-b{display:block}.fk-tl-b .fk-bar{display:block;margin:0}
/* ===== Nhân sự & danh mục ===== */
.fk-person{display:inline-flex;align-items:center;gap:10px}
.fk-off{opacity:.6}
.fk-add summary{cursor:pointer;list-style:none}.fk-add summary::-webkit-details-marker{display:none}.fk-add[open] summary{margin-bottom:8px}
.fk-btn-sm{min-height:34px;padding:5px 12px;font-size:13px}
.fk-addrow{border-top:1px dashed var(--fk-line);margin-top:14px;padding-top:6px}
.fk-table input[type=text],.fk-table input[type=number]{width:100%;min-height:36px;padding:4px 8px;border:1px solid var(--fk-line);border-radius:8px;font:inherit;background:var(--fk-card);color:var(--fk-ink)}
.fk-title .fk-av{vertical-align:middle;margin-right:6px}

/* Tiến độ hoàn thành từng nhân viên */
.fk-pg{min-width:150px}.fk-pg-t{font-size:12.5px;display:flex;gap:4px;align-items:baseline}.fk-pg-t em{margin-left:auto;font-style:normal;font-weight:700}
.fk-pg-b{height:8px;border-radius:99px;background:var(--fk-line,#e7ecf4);overflow:hidden;margin-top:3px}
.fk-pg-b i{display:block;height:100%;border-radius:99px;background:#8a97a8}
.fk-pg-b i.g{background:#0f9d6a}.fk-pg-b i.y{background:#f0a020}.fk-pg-b i.r{background:#e5484d}
tr.fk-total td{border-top:2px solid var(--fk-line,#e7ecf4);background:rgba(127,127,127,.06)}
.fk-pw{font-size:16px;padding:3px 8px;background:rgba(127,127,127,.12);border-radius:6px;user-select:all}

/* Thẻ nổi bật PTTB Internet vs kế hoạch */
.fk-hero{margin:0 0 16px;padding:20px 22px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#0b2a66 0%,#1d5fd1 100%);box-shadow:0 8px 24px rgba(13,60,140,.25)}
.fk-hero-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;font-weight:700;font-size:15px;opacity:.95}.fk-hero-h small{font-weight:500;opacity:.8}
.fk-hero-g{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px;margin-top:12px}
.fk-hero-b{padding:2px 0}.fk-hero-b+.fk-hero-b{border-left:1px solid rgba(255,255,255,.2);padding-left:22px}
.fk-hero-t{font-size:13px;letter-spacing:.04em;text-transform:uppercase;opacity:.85}
.fk-hero-n{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 10px}.fk-hero-n b{font-size:56px;line-height:1;font-weight:800}.fk-hero-b:not(.big) .fk-hero-n b{font-size:38px}
.fk-hero-n span{font-size:15px;opacity:.85}.fk-hero-n em{font-style:normal;font-weight:800;font-size:20px;padding:3px 12px;border-radius:99px;background:rgba(255,255,255,.18);margin-left:auto}
.fk-hero-n em.g{background:#0f9d6a}.fk-hero-n em.y{background:#f0a020}.fk-hero-n em.r{background:#e5484d}
.fk-hero-bar{position:relative;height:14px;border-radius:99px;background:rgba(255,255,255,.22);overflow:visible}
.fk-hero-bar i{display:block;height:100%;border-radius:99px;background:#7ee0b4}.fk-hero-bar i.y{background:#ffd27a}.fk-hero-bar i.r{background:#ff8f93}
.fk-hero-bar u{position:absolute;top:-4px;bottom:-4px;width:3px;background:#fff;border-radius:2px;text-decoration:none}
.fk-hero-s{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-size:13px;opacity:.95}.fk-hero-s b.g{color:#7ee0b4}.fk-hero-s b.r{color:#ffb3b5}
@media(max-width:900px){.fk-hero-g{grid-template-columns:1fr}.fk-hero-b+.fk-hero-b{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.2);padding-top:14px}.fk-hero-n b{font-size:44px}}
.fk-bub .fk-canvas{height:440px}@media(max-width:720px){.fk-bub .fk-canvas{height:360px}}
