:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --ink:#1c2233;
  --muted:#6b7280;
  --accent:#3f51b5;
  --accent-dark:#2c3a94;
  --accent-light:#e8eaf9;
  --child:#00897b;
  --child-light:#e0f2f1;
  --border:#e5e7eb;
}
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;}
header.site{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;padding:36px 20px 44px;}
header.site .wrap{max-width:1100px;margin:0 auto;}
header.site h1{margin:0 0 6px;font-size:28px;}
header.site p{margin:0;opacity:.9;font-size:15px;}
.search-box{max-width:1100px;margin:-24px auto 0;padding:0 20px;}
.search-box form{background:var(--card);border-radius:14px;box-shadow:0 8px 24px rgba(30,40,90,.12);display:flex;gap:8px;padding:10px;}
.search-box input[type=text]{flex:1;border:none;outline:none;font-size:16px;padding:10px 12px;background:transparent;color:var(--ink);}
.search-box button{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:10px 20px;font-size:15px;cursor:pointer;}
.search-box button:hover{background:var(--accent-dark);}
.search-hint{max-width:1100px;margin:8px auto 0;padding:0 24px;color:var(--muted);font-size:13px;}
main{max-width:1100px;margin:0 auto;padding:32px 20px 60px;}
section.group{margin-bottom:40px;}
section.group h2{font-size:20px;margin:0 0 4px;}
section.group .count{color:var(--muted);font-size:13px;margin-bottom:16px;}
.badge-adult{display:inline-block;background:var(--accent-light);color:var(--accent-dark);border-radius:6px;padding:2px 9px;font-size:12px;font-weight:600;}
.badge-child{display:inline-block;background:var(--child-light);color:var(--child);border-radius:6px;padding:2px 9px;font-size:12px;font-weight:600;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s,transform .15s;}
.card:hover{box-shadow:0 6px 18px rgba(30,40,90,.10);transform:translateY(-2px);}
.card .code{font-weight:700;font-size:15px;color:var(--accent-dark);}
.card .title{font-size:14px;color:var(--ink);}
.card .desc{font-size:13px;color:var(--muted);flex:1;}
.card .kw{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;}
.card .kw span{background:var(--bg);border:1px solid var(--border);color:var(--muted);font-size:11px;padding:2px 7px;border-radius:20px;}
.card a.open{margin-top:8px;display:inline-block;text-align:center;background:var(--accent);color:#fff;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:600;}
.card a.open:hover{background:var(--accent-dark);}
.empty{color:var(--muted);padding:20px;text-align:center;background:var(--card);border-radius:12px;border:1px dashed var(--border);}
footer.site{text-align:center;color:var(--muted);font-size:12px;padding:20px;}
.source-tag{font-size:11px;color:var(--muted);}
.admin-link{position:fixed;bottom:14px;right:16px;font-size:12px;color:#fff;background:rgba(0,0,0,.35);padding:5px 10px;border-radius:20px;text-decoration:none;}
.admin-link:hover{background:rgba(0,0,0,.55);}
