Compare commits

..

No commits in common. "60b18545ffa53fa1cefe0fb6325a3757916ce86d" and "055b8751f771536bb20efa7e26dd399c0c85ea21" have entirely different histories.

2 changed files with 28 additions and 36 deletions

View File

@ -7,44 +7,41 @@
<script src="https://cdn.jsdelivr.net/npm/pptxgenjs@3.12.0/dist/pptxgen.bundle.js"></script>
<style>
* { margin: 0; box-sizing: border-box; }
body { font-family: "Segoe UI", "Roboto", Arial, sans-serif; background: #ffffff; color: #1a1a1a; }
body { font-family: -apple-system, "Segoe UI", Roboto, sans-serif; background: #0f1218; color: #f4f4f5; }
.slide { display: none; min-height: 100vh; padding: 6vh 8vw; flex-direction: column; justify-content: flex-start; }
.slide.on { display: flex; }
.slide h1 { font-size: clamp(28px, 5vw, 52px); margin-bottom: 20px; color: #0056b3; font-weight: 700; }
.slide h2 { font-size: clamp(22px, 4vw, 38px); margin-bottom: 16px; color: #0056b3; font-weight: 600; }
.slide h1 { font-size: clamp(28px, 5vw, 52px); margin-bottom: 20px; color: #00b8cc; }
.slide h2 { font-size: clamp(22px, 4vw, 38px); margin-bottom: 16px; color: #00b8cc; }
.slide li { font-size: clamp(16px, 2.4vw, 24px); line-height: 1.5; margin-bottom: 8px; list-style: none; padding-left: 24px; position: relative; }
.slide li::before { content: ""; position: absolute; left: 0; top: .55em; width: 10px; height: 10px; border-radius: 3px; background: #0056b3; }
.num { position: fixed; bottom: 18px; right: 22px; color: #666; font-size: 14px; }
.slide li::before { content: ""; position: absolute; left: 0; top: .55em; width: 10px; height: 10px; border-radius: 3px; background: #00b8cc; }
.num { position: fixed; bottom: 18px; right: 22px; color: #8a8a92; font-size: 14px; }
.nav { position: fixed; bottom: 14px; left: 22px; display: flex; gap: 8px; flex-wrap: wrap; max-width: 80vw; }
.nav button { border: 1px solid #ddd; background: #f5f5f5; color: #333; border-radius: 6px; padding: 8px 14px; cursor: pointer; font-size: 14px; }
.nav .pptx { border-color: #0056b3; color: #0056b3; background: #e8f0fe; }
.nav .refresh { border-color: #28a745; color: #28a745; background: #e8f5e9; }
.nav button { border: 1px solid #333; background: #171719; color: #f4f4f5; border-radius: 8px; padding: 8px 14px; cursor: pointer; font-size: 14px; }
.nav .pptx { border-color: #00b8cc; color: #9beeff; }
.nav .refresh { border-color: #10b981; color: #6ee7b7; }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin-top: 20px; }
.metric-card { background: #f8f9fa; border-radius: 8px; padding: 20px; border: 1px solid #e9ecef; }
.metric-card h3 { font-size: 14px; color: #6c757d; margin-bottom: 6px; }
.metric-card .value { font-size: clamp(24px, 3.5vw, 36px); font-weight: bold; color: #0056b3; }
.metric-card .sub { font-size: 13px; color: #6c757d; margin-top: 4px; }
.chart-placeholder { background: #f8f9fa; border-radius: 8px; padding: 30px; text-align: center; margin: 16px 0; border: 1px solid #e9ecef; }
.bar-row { display: flex; align-items: center; margin: 8px 0; }
.bar-label { width: 180px; font-size: 13px; color: #495057; }
.bar-container { flex: 1; background: #e9ecef; border-radius: 3px; height: 20px; overflow: hidden; }
.bar { height: 100%; background: linear-gradient(90deg, #0056b3, #007bff); border-radius: 3px; transition: width 0.3s; }
.bar-value { margin-left: 10px; font-size: 13px; color: #0056b3; min-width: 70px; text-align: right; font-weight: 600; }
.metric-card { background: #1a1d24; border-radius: 10px; padding: 20px; border: 1px solid #2a2f3a; }
.metric-card h3 { font-size: 14px; color: #8a8a92; margin-bottom: 6px; }
.metric-card .value { font-size: clamp(24px, 3.5vw, 36px); font-weight: bold; color: #00b8cc; }
.metric-card .sub { font-size: 13px; color: #6a6a72; margin-top: 4px; }
.chart-placeholder { background: #1a1d24; border-radius: 12px; padding: 30px; text-align: center; margin: 16px 0; border: 1px solid #2a2f3a; }
.bar-row { display: flex; align-items: center; margin: 10px 0; }
.bar-label { width: 180px; font-size: 12px; color: #a1a1aa; }
.bar-container { flex: 1; background: #2a2f3a; border-radius: 4px; height: 22px; overflow: hidden; }
.bar { height: 100%; background: linear-gradient(90deg, #00b8cc, #0ea5e9); border-radius: 4px; transition: width 0.3s; }
.bar-value { margin-left: 10px; font-size: 13px; color: #00b8cc; min-width: 70px; text-align: right; font-weight: 600; }
.file-input { margin: 16px 0; }
.file-input input { display: none; }
.file-input label { display: inline-block; padding: 8px 16px; background: #0056b3; color: #fff; border-radius: 6px; cursor: pointer; font-weight: 600; font-size: 14px; }
.file-input label:hover { background: #004494; }
.file-input label { display: inline-block; padding: 8px 16px; background: #00b8cc; color: #0f1218; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: 14px; }
.file-input label:hover { background: #00d4ec; }
.rdt-section { margin: 20px 0; }
.rdt-title { font-size: 16px; color: #0056b3; margin: 14px 0 8px 0; font-weight: 600; }
.tariff-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #e9ecef; font-size: 13px; }
.rdt-title { font-size: 18px; color: #00b8cc; margin: 16px 0 10px 0; font-weight: 600; }
.tariff-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #2a2f3a; font-size: 13px; }
.tariff-row:last-child { border-bottom: none; }
.tariff-name { color: #495057; }
.tariff-val { color: #0056b3; font-weight: 600; }
.summary-box { background: #f8f9fa; border: 1px solid #0056b3; border-radius: 8px; padding: 20px; margin: 16px 0; }
.summary-box h3 { color: #0056b3; margin-bottom: 12px; font-size: 18px; }
.logo { position: fixed; top: 20px; right: 30px; height: 50px; }
.logo img { height: 100%; }
.slide-content { margin-top: 60px; }
.tariff-name { color: #a1a1aa; }
.tariff-val { color: #00b8cc; font-weight: 600; }
.summary-box { background: #1a1d24; border: 1px solid #00b8cc; border-radius: 10px; padding: 20px; margin: 16px 0; }
.summary-box h3 { color: #00b8cc; margin-bottom: 12px; font-size: 18px; }
@media print {
.nav, .num, .file-input { display: none; }
.slide { display: flex; page-break-after: always; min-height: 100vh; }
@ -52,10 +49,7 @@
</style>
</head>
<body>
<div class="logo">
<img src="https://b2b.telecom.kz/bitrix/templates/main_theme/img/logo.svg" alt="KAZAKHTELECOM Business">
</div>
<div id="deck" class="slide-content"></div>
<div id="deck"></div>
<div class="nav">
<button onclick="go(-1)">← Назад</button>
<button onclick="go(1)">Вперёд →</button>
@ -138,8 +132,7 @@ function buildSlides() {
var pct = maxVal > 0 ? (d.val / maxVal * 100) : 0;
return '<div class="bar-row">' +
'<div class="bar-label" style="min-width:180px;">' + d.rdt + '</div>' +
'<div class="bar-container" style="position:relative;min-width:80px;"><div class="bar" style="width:' + pct + '%; background:' + t.color + '"></div></div>' +
'<div class="bar-value" style="color:' + t.color + ';min-width:30px;">' + d.val + '</div>' +
'<div class="bar-container" style="position:relative;min-width:60px;"><div class="bar" style="width:' + pct + '%; background:' + t.color + '"></div><span style="position:absolute;left:100%;top:50%;transform:translateY(-50%);color:' + t.color + ';font-size:13px;font-weight:600;margin-left:8px;">' + d.val + '</span></div>' +
'</div>';
}).join('');

File diff suppressed because one or more lines are too long