Files
WhatIDo/public/share.html
T

129 lines
9.9 KiB
HTML

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="#F7C90E">
<title>Записи занятий</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
:root{--yellow:#F7C90E;--dark:#211E22;--gray:#9C9C9C;--page:#f6f6f6;--card-bg:#fff;--radius:30px}
body{font-family:'Segoe UI',system-ui,-apple-system,Roboto,sans-serif;background:var(--page);color:var(--dark);min-height:100dvh}
.hero{background:var(--yellow);padding:44px 20px 52px;text-align:center;position:relative;overflow:hidden}
.hero .brand{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:16px}
.hero .brand[hidden]{display:none}
.hero .brand .brand-logo{height:52px;width:auto;max-width:min(42vw,300px);object-fit:contain;display:block}
.hero .brand .brand-name{font-size:1.05rem;font-weight:800;letter-spacing:-.02em;color:var(--dark);opacity:.8}
.hero h1{font-size:clamp(1.6rem,4.5vw,2.9rem);font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--dark);max-width:900px;margin:0 auto}
.hero .chips{margin-top:20px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.hero .chip{background:#fff;color:var(--dark);border-radius:999px;padding:8px 18px;font-size:.88rem;font-weight:600;box-shadow:5px 5px 10px rgba(216,173,0,.25)}
.wrap{max-width:1200px;margin:0 auto;padding:48px 28px 70px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.card{background:var(--card-bg);border-radius:var(--radius);padding:10px 10px 14px;box-shadow:0 1px 3px rgba(20,30,40,.06);transition:transform .18s ease,box-shadow .18s ease;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(20,30,40,.14)}
.card .photo{border-radius:24px;overflow:hidden;background:#E7E7E7}
.card .photo img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;cursor:zoom-in}
.card .no-photo{aspect-ratio:1/1;background:#E7E7E7;display:flex;align-items:center;justify-content:center;color:var(--gray)}
.card .no-photo svg{width:52%;height:52%}
.card .no-photo svg *{fill:currentColor}
.card .body{padding:14px 6px 4px;display:flex;flex-direction:column;gap:6px;flex:1}
.card .name{font-size:1.02rem;font-weight:700;color:var(--dark);letter-spacing:-.01em}
.card .group{display:inline-block;background:var(--yellow);color:var(--dark);font-size:.72rem;font-weight:700;padding:4px 11px;border-radius:999px;align-self:flex-start}
.card .desc{font-size:.9rem;line-height:1.45;color:#4a4f5a;white-space:pre-wrap;word-break:break-word}
.files-block{margin-top:10px}
.files-label{font-size:.7rem;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.card .files{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.card .files a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#F6F6F6;border:1px solid #EBEBEB;color:#3a3f4a;text-decoration:none;border-radius:12px;transition:border .15s,color .15s,background .15s}
.card .files a:hover{border-color:var(--yellow);color:var(--dark);background:#fff}
.card .files .ficon{font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;flex-shrink:0}
.card .files a.ftype-image .ficon{background:#EAF4E8}
.card .files a.ftype-music .ficon{background:#EAEEF6}
.card .files a.ftype-document .ficon{background:#F6F0E0}
.card .files a.ftype-presentation .ficon{background:#F6E4E8}
.card .files a.ftype-other .ficon{background:#EFEFEF}
.card .foot{margin-top:auto;padding:8px 6px 2px;font-size:.78rem;color:var(--gray)}
.date-sep{grid-column:1/-1;display:flex;align-items:center;gap:14px;margin:8px 0 -8px}
.date-sep .date-chip{background:var(--dark);color:#fff;font-size:.82rem;font-weight:700;padding:7px 16px;border-radius:999px;letter-spacing:.01em}
.date-sep .date-line{flex:1;height:1px;background:#E3E3E3}
.empty{grid-column:1/-1;background:#fff;border-radius:var(--radius);padding:48px 24px;text-align:center;color:var(--gray);box-shadow:0 1px 3px rgba(20,30,40,.06)}
.empty .big{font-size:2rem;margin-bottom:10px}
.loading{grid-column:1/-1;text-align:center;color:var(--gray);padding:40px}
.lightbox{position:fixed;inset:0;background:rgba(12,14,20,.92);display:none;align-items:center;justify-content:center;z-index:100;cursor:zoom-out;padding:24px}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
#photosBlock{display:none;margin-bottom:44px}
.photos-label{font-size:.78rem;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px}
.photos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gphoto{position:relative;border-radius:18px;overflow:hidden;background:#fff;display:block;box-shadow:0 1px 3px rgba(20,30,40,.06);text-decoration:none}
.gphoto img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;cursor:zoom-in;transition:transform .18s ease}
.gphoto:hover img{transform:scale(1.03)}
.gcap{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 9px;font-size:.74rem;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1000px){.grid{grid-template-columns:repeat(3,1fr)}.photos-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.grid{grid-template-columns:repeat(2,1fr)}.photos-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.grid{grid-template-columns:1fr}.photos-grid{grid-template-columns:1fr}}
.password-modal{position:fixed;inset:0;background:rgba(12,14,20,.85);display:none;align-items:center;justify-content:center;z-index:200;padding:24px}
.password-modal.open{display:flex}
.password-box{background:var(--card-bg);border-radius:16px;padding:24px;max-width:360px;width:100%;text-align:center}
.password-box h3{margin-bottom:8px}
.password-box p{color:var(--gray);font-size:.9rem;margin-bottom:16px}
.password-box input{width:100%;padding:14px 16px;border:1px solid #EBEBEB;border-radius:12px;font-size:1rem;margin-bottom:16px}
.password-box button{width:100%;padding:14px;background:var(--yellow);color:var(--dark);border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer}
.password-box button:hover{opacity:.9}
.share-message{background:var(--card-bg);border-radius:20px;padding:20px 24px;margin-bottom:32px;box-shadow:0 1px 3px rgba(20,30,40,.06);font-size:.98rem;line-height:1.55;color:#3a3f4a;white-space:pre-wrap;word-break:break-word}
.share-link-block{margin-bottom:32px}
.share-link-btn{display:inline-flex;align-items:center;gap:8px;background:var(--dark);color:#fff;text-decoration:none;border-radius:999px;padding:13px 24px;font-size:.92rem;font-weight:700;transition:opacity .15s,transform .15s}
.share-link-btn:hover{opacity:.9;transform:translateY(-2px)}
.countdown{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(150%);z-index:50;display:flex;align-items:center;gap:10px;padding:14px 24px;font-size:.92rem;color:var(--dark);background:#fff;border-radius:16px;box-shadow:0 8px 30px rgba(20,30,40,.16);max-width:calc(100vw - 32px);opacity:0;transition:transform .3s ease,opacity .3s ease;pointer-events:none}
.countdown.visible{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto}
.countdown .cd-icon{font-size:1.2rem}
.countdown .cd-text{color:#4a4f5a;line-height:1.4;text-align:center}
.countdown .cd-text strong{color:var(--dark);font-weight:700}
.countdown.warn{background:#FFF3E0}
.countdown.warn .cd-text strong{color:#E65100}
.countdown.urgent{background:#FFEBEE}
.countdown.urgent .cd-text strong{color:#C62828}
.cookie-notice{position:fixed;bottom:24px;right:24px;z-index:150;max-width:340px;background:var(--card-bg);border-radius:16px;padding:18px 20px;box-shadow:0 8px 30px rgba(20,30,40,.18);font-size:.9rem;line-height:1.5;color:#3a3f4a}
.cookie-notice.hidden{display:none}
.cookie-notice p{margin-bottom:14px}
.cookie-notice button{width:100%;padding:10px 14px;background:var(--yellow);color:var(--dark);border:none;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer}
.cookie-notice button:hover{opacity:.9}
@media(max-width:480px){.cookie-notice{left:24px;right:24px;max-width:none}}
</style>
</head>
<body>
<section class="hero">
<div class="brand" id="brandHead" hidden>
<img class="brand-logo" id="brandLogo" alt="" hidden>
<span class="brand-name" id="brandName" hidden></span>
</div>
<h1 id="title">Загрузка...</h1>
<div class="chips" id="chips"></div>
</section>
<main class="wrap">
<div id="shareMessage" class="share-message" style="display:none"></div>
<div id="shareLinkBlock" class="share-link-block" style="display:none"></div>
<div id="photosBlock">
<div class="photos-label">Фото группы</div>
<div class="photos-grid" id="photosGrid"></div>
</div>
<div class="grid" id="grid"><div class="loading">Карточки загружаются...</div></div>
</main>
<div class="lightbox" id="lightbox"><img id="lightboxImg" alt=""></div>
<div id="countdown" class="countdown"><span class="cd-icon">⏳</span><span class="cd-text"></span></div>
<div class="cookie-notice hidden" id="cookieNotice">
<p>Этот сайт использует cookie-файлы для корректной работы. Продолжая просмотр, вы соглашаетесь с их использованием.</p>
<button type="button" id="cookieAcceptBtn">Принять</button>
</div>
<div class="password-modal" id="passwordModal">
<div class="password-box">
<h3>🔒 Ссылка защищена паролем</h3>
<p>Введите пароль для доступа к записям</p>
<input type="password" id="passwordInput" placeholder="Пароль" autocomplete="current-password">
<button type="button" id="passwordSubmitBtn">Войти</button>
</div>
</div>
<script src="/js/share.js"></script>
</body>
</html>