1<!DOCTYPE html> 2<html lang="ru"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta name="description" content="Ð¡Ð°Ð¹Ñ Ð½Ð° CMS v2 GUWi.ru"> 7 <title>ÐÑ Ð¾Ð´</title> 8 <link href="/static/css/bootstrap.min.css" rel="stylesheet"> 9 <link rel="stylesheet" href="/static/css/all.min.css"> 10 <style> 11 body { background: #edeef0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; } 12 .vk-header { 13 background: #4a76a8; 14 color: white; 15 padding: 8px 0; 16 box-shadow: 0 2px 4px rgba(0,0,0,0.2); 17 position: sticky; 18 top: 0; 19 z-index: 1000; 20 } 21 .vk-header .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; } 22 .vk-header .logo a { color: white; text-decoration: none; font-size: 1.4em; font-weight: bold; } 23 .vk-header .user-menu { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; } 24 .vk-header .user-menu a { color: white; text-decoration: none; } 25 .vk-header .user-menu .user-info { color: #e0e0e0; } 26 .sidebar { 27 position: fixed; 28 top: 60px; 29 left: 0; 30 bottom: 0; 31 width: 220px; 32 background: white; 33 border-right: 1px solid #d3d9de; 34 overflow-y: auto; 35 padding-top: 15px; 36 z-index: 900; 37 transition: left 0.3s ease; 38 } 39 .sidebar ul { list-style: none; padding: 0; margin: 0; } 40 .sidebar ul li { border-bottom: 1px solid #edeef0; } 41 .sidebar ul li a { 42 display: block; 43 padding: 12px 20px; 44 color: #2c5f8a; 45 text-decoration: none; 46 font-size: 14px; 47 font-weight: 500; 48 } 49 .sidebar ul li a:hover { background: #edeef0; } 50 .main-content { 51 margin-left: 240px; 52 padding: 20px; 53 min-height: 100vh; 54 } 55 .menu-toggle { 56 display: none; 57 background: #4a76a8; 58 color: white; 59 border: none; 60 border-radius: 4px; 61 padding: 8px 12px; 62 font-size: 24px; 63 cursor: pointer; 64 } 65 @media (max-width: 768px) { 66 .sidebar { 67 left: -240px; 68 top: 56px; 69 } 70 .sidebar.open { left: 0; } 71 .main-content { margin-left: 0; } 72 .menu-toggle { display: block; } 73 } 74 .card { 75 background: white; 76 border-radius: 8px; 77 box-shadow: 0 1px 0 0 #d3d9de, 0 1px 2px 0 rgba(0,0,0,0.1); 78 margin-bottom: 20px; 79 } 80 .card-header { background: #f8f9fa; border-bottom: 1px solid #edeef0; font-weight: 600; } 81 .btn-primary { 82 background: #4a76a8; 83 border-color: #4a76a8; 84 color: white !important; 85 } 86 .btn-primary:hover, 87 .btn-primary:active, 88 .btn-primary:focus { 89 background: #3a5f8a !important; 90 border-color: #3a5f8a !important; 91 color: white !important; 92 } 93 .btn-read-more { 94 background: #4a76a8; 95 border-color: #4a76a8; 96 color: white !important; 97 } 98 .btn-read-more:hover, 99 .btn-read-more:active, 100 .btn-read-more:focus { 101 background: #4a76a8 !important; 102 border-color: #4a76a8 !important; 103 color: white !important; 104 box-shadow: none; 105 } 106 .flashes { list-style: none; padding: 0; } 107 .flashes li { padding: 10px; border-radius: 4px; margin-bottom: 10px; } 108 .flashes .success { background: #d4edda; color: #155724; } 109 .flashes .danger { background: #f8d7da; color: #721c24; } 110 .flashes .warning { background: #fff3cd; color: #856404; } 111 .post-card { 112 background: white; 113 border-radius: 8px; 114 box-shadow: 0 1px 0 0 #d3d9de, 0 1px 2px 0 rgba(0,0,0,0.1); 115 margin-bottom: 20px; 116 padding: 15px; 117 } 118 .post-header { 119 display: flex; 120 align-items: center; 121 margin-bottom: 10px; 122 } 123 .post-header .avatar { 124 width: 40px; 125 height: 40px; 126 border-radius: 50%; 127 background: #4a76a8; 128 color: white; 129 display: flex; 130 align-items: center; 131 justify-content: center; 132 margin-right: 12px; 133 font-weight: bold; 134 font-size: 18px; 135 flex-shrink: 0; 136 } 137 .post-header .post-info { flex: 1; } 138 .post-header .post-author { font-weight: 600; color: #2c5f8a; text-decoration: none; } 139 .post-header .post-date { font-size: 12px; color: #939393; } 140 .post-content { line-height: 1.5; margin-bottom: 10px; color: #000; } 141 .post-images { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; justify-content: center; } 142 .post-images img { max-width: 100%; max-height: 400px; border-radius: 8px; } 143 .page-content pre, .page-content code { 144 white-space: pre-wrap; 145 font-family: 'Courier New', monospace; 146 background-color: #f4f4f4; 147 border: 1px solid #ddd; 148 border-radius: 4px; 149 padding: 0.5rem; 150 display: block; 151 overflow-x: auto; 152 } 153 .pagination { flex-wrap: wrap; } 154 @media (max-width: 768px) { 155 .main-content { padding: 10px; } 156 .post-header .avatar { width: 30px; height: 30px; font-size: 14px; } 157 } 158 .text-end { text-align: right; } 159 .text-center { text-align: center; } 160 /* СÑили Ð´Ð»Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¾Ñибок */ 161 .error-page { 162 min-height: 60vh; 163 display: flex; 164 align-items: center; 165 justify-content: center; 166 } 167 .error-page .error-icon { 168 font-size: 6rem; 169 color: #4a76a8; 170 margin-bottom: 1rem; 171 } 172 .error-page h1 { 173 font-size: 5rem; 174 font-weight: 700; 175 color: #4a76a8; 176 } 177 .error-page h3 { 178 margin-bottom: 1rem; 179 color: #2c3e50; 180 } 181 .error-page p { 182 color: #6c757d; 183 max-width: 500px; 184 margin: 0 auto 1.5rem; 185 } 186 .error-page .btn { 187 padding: 0.75rem 2rem; 188 font-size: 1.1rem; 189 border-radius: 50px; 190 } 191 .error-page .card { 192 max-width: 600px; 193 margin: 0 auto; 194 padding: 2rem; 195 text-align: center; 196 } 197 </style> 198</head> 199<body> 200<header class="vk-header"> 201 <div class="container"> 202 <div style="display: flex; align-items: center; gap: 15px;"> 203 <button class="menu-toggle" id="menu-toggle">â°</button> 204 <div class="logo"><a href="/">GUWi.ru</a></div> 205 </div> 206 <div class="user-menu"> 207 208 <a href="/login">ÐойÑи</a> 209 210 211 </div> 212 </div> 213</header> 214 215<nav class="sidebar" id="sidebar"> 216 <ul> 217 <li><a href="/"><i class="fas fa-home"></i> ÐлавнаÑ</a></li> 218 219 220 <li><a href="/?p=1" target="_self">ÐоÑÑÑолио пÑоекÑов GUWi.ru</a></li> 221 222 223 224 <li><a href="/?p=430" target="_self">СмолÑнÑковÑина</a></li> 225 226 227 228 </ul> 229</nav> 230 231<main class="main-content"> 232 233 234 235 236<div class="row justify-content-center"> 237 <div class="col-md-4"> 238 <div class="card"> 239 <div class="card-header">ÐÑ Ð¾Ð´ в ÑиÑÑемÑ</div> 240 <div class="card-body"> 241 <form method="post"> 242 <input type="hidden" name="csrf_token" value="ejllDknp6SuCeNZOO-iFGaLOGAzOKIc5KQYPpjn8QKs"> 243 <div class="mb-3"> 244 <label>
244Ðогин</label> 245 <input type="text" name="username" class="form-control" required> 246 </div> 247 <div class="mb-3"> 248 <label>ÐаÑолÑ</label> 249 <input type="password" name="password" class="form-control" required> 250 </div> 251 <button type="submit" class="btn btn-primary w-100">ÐойÑи</button> 252 </form> 253 254 </div> 255 </div> 256 </div> 257</div> 258 259</main> 260
261<script src="/static/js/bootstrap.bundle.min.js" defer></script>
vendor: 1 bytes, line 261
261
262<script> 263 const menuToggle = document.getElementById('menu-toggle'); 264 const sidebar = document.getElementById('sidebar'); 265 if (menuToggle) { 266 menuToggle.addEventListener('click', function(e) { 267 e.stopPropagation(); 268 sidebar.classList.toggle('open'); 269 }); 270 } 271 document.addEventListener('click', function(e) { 272 if (window.innerWidth <= 768 && sidebar.classList.contains('open')) { 273 if (!sidebar.contains(e.target) && e.target !== menuToggle) { 274 sidebar.classList.remove('open'); 275 } 276 } 277 }); 278 window.csrfToken = "ejllDknp6SuCeNZOO-iFGaLOGAzOKIc5KQYPpjn8QKs"; 279 280 (function() { 281 var flashContainer = document.getElementById('flash-messages'); 282 if (flashContainer) { 283 var delay = parseInt('2') * 1000; 284 setTimeout(function() { 285 var items = flashContainer.querySelectorAll('li'); 286 items.forEach(function(item) { 287 var alert = bootstrap.Alert.getInstance(item); 288 if (alert) { 289 alert.close(); 290 } else { 291 item.style.transition = 'opacity 0.5s'; 292 item.style.opacity = '0'; 293 setTimeout(function() { 294 item.style.display = 'none'; 295 }, 500); 296 } 297 }); 298 setTimeout(function() { 299 if (flashContainer.children.length === 0) { 300 flashContainer.style.display = 'none'; 301 } 302 }, 600); 303 }, delay); 304 } 305 })(); 306</script>
306 307</body> 308</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.