:root{
  --page-bg:#bcd9e3; --card-bg:#fffdf9; --fg:#241f19; --muted:#457b8f;
  --accent:#74a6b8; --line:#e6e0d6; --maroon:#74a6b8; --maroon-dark:#457b8f;
}
*{box-sizing:border-box}
html{background:var(--page-bg);}
body{margin:0;background:var(--page-bg);color:var(--fg);
  font:17px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  padding:4rem 1rem 2.5rem;}
a{color:var(--accent);text-decoration: none;}
a:hover{color:#457b8f;text-decoration: underline;}

.page-card{max-width:1180px;margin:0 auto;background:var(--card-bg);
  border-radius:8px;overflow:hidden;
  box-shadow:0 18px 40px rgba(30,20,10,.18), 0 3px 10px rgba(30,20,10,.08);}

.site-header{background:var(--card-bg);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1.3rem 1.25rem;}
nav ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;
  gap:.4rem 1.15rem;margin:0;padding:0;
  font-family:"Segoe UI", Helvetica, Arial, sans-serif; font-weight: 500; font-size:.95rem;
  white-space:nowrap;}
nav a{text-decoration:none;color:var(--muted);}
nav li.active a, nav a:hover{color:var(--maroon);text-decoration:none;text-underline-offset:.25em;}

.site-signature{text-align:center;padding:3rem;}
.site-signature a{font-family:"Pinyon Script", cursive;font-size:3.5rem;line-height:1.15;
  color:var(--maroon);text-decoration:none;display:inline-block;}
.site-signature a:hover{color:var(--maroon-dark);}

.breadcrumbs{max-width:980px;margin:1rem auto 0;padding:0 2rem;font-size:.88rem;
  color:var(--muted);}
.breadcrumbs a{color:var(--muted);text-decoration:underline;}
.breadcrumbs a:hover{color:var(--maroon);}
.breadcrumbs span:not(.crumb-sep){color:var(--fg);}
.breadcrumbs .crumb-sep{color:var(--line);margin:0 .3rem;}

.page-header-image{max-width:980px;margin:1.4rem auto 0;padding:0 2rem;}
.page-header-image img{width:100%;height:auto;max-height:640px;object-fit:contain;display:block;border-radius:6px;}

main{max-width:980px;margin:0 auto;padding:1.2rem 2rem 3.5rem;}
h1{font-family:"Playfair Display", Georgia, serif;font-weight:700;
  font-size:2.6rem;line-height:1.15;margin:.2rem 0 1rem;color:var(--maroon);}
h2{font-family:"Playfair Display", Georgia, serif;font-weight:600;font-size:1.5rem;
  border-bottom:1px solid var(--line);padding-bottom:.35rem;margin-top:3rem;}
.intro{color:var(--muted);font-size:1.1rem;}
.count{color:var(--muted);font-size:.9rem;margin-top:1.2rem;}
main p{max-width:74ch;font-size:1.08rem;}
ul.page-list{list-style:none;padding:0;margin-top:1rem;}
ul.page-list li{padding:1rem 0;border-bottom:3px dotted var(--line);font-size:1.05rem;}
ul.page-list.two-col{column-count:2;column-gap:3.2rem;}
ul.page-list.two-col li{break-inside:avoid;}
ul.icon-list li{display:flex;align-items:center;gap:.7rem;}
ul.icon-list li::before{content:"\2766";color:var(--accent);
  font-size:.8rem;line-height:1;flex:none;}
ul.home-list{font-size:1.1rem;column-count:2;column-gap:3.2rem;margin-top:1.5rem;}
ul.home-list li{border-bottom:none;padding-top:.6rem;padding-bottom:.6rem;break-inside:avoid;}
.cal-table-wrap{overflow-x:auto;margin:1.5rem 0 2rem;-webkit-overflow-scrolling:touch;}
.cal-table{border-collapse:collapse;width:100%;min-width:760px;font-size:.92rem;}
.cal-table th,.cal-table td{border:1px solid var(--line);padding:.45rem .6rem;text-align:left;vertical-align:top;}
.cal-table thead th{font-family:"Playfair Display",Georgia,serif;font-weight:600;
  border-bottom:2px solid var(--maroon);white-space:nowrap;}
.cal-table tbody tr:nth-child(odd){background:rgba(94,21,23,.03);}
.cal-red{color:#a52a2a;}
.cal-blue{color:#2a4d8f;}
.cal-black{color:var(--fg);}

.data-table-wrap{overflow-x:auto;margin:1.5rem 0 2rem;-webkit-overflow-scrolling:touch;}
.data-table{border-collapse:collapse;width:100%;min-width:620px;font-size:.98rem;}
.data-table th,.data-table td{border:1px solid var(--line);padding:.7rem .8rem;text-align:left;vertical-align:top;}
.data-table thead th{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:1.1rem;
  border-bottom:2px solid var(--maroon);}
.data-table tbody tr:nth-child(odd){background:rgba(94,21,23,.03);}
.data-table td img{max-width:140px;display:block;}

.stub-flag{color:#a35;font-size:.82rem;}
img{max-width:100%;height:auto;border-radius:3px;}
.site-footer{padding:1rem 1.75rem 2.5rem;color:var(--muted);font-size:.85rem;
  border-top:1px solid var(--line);margin-top:2rem;}
.site-footer .footer-admin-link{margin:.5rem 0 0;text-align:right;font-size:.82rem;}
.site-footer .footer-admin-link a{color:var(--muted);text-decoration:underline;}
.site-footer .footer-admin-link a:hover{color:var(--maroon);}

/* ---------------------------------------------------------- admin UI -- */
.admin-bar{max-width:1180px;margin:0 auto 1rem;background:#2b2320;color:#e9e2d3;
  padding:.6rem 1.5rem;border-radius:6px;font-size:.92rem;
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;}
.admin-bar a{color:#f1e4d0;text-decoration:none;}
.admin-bar a:hover{text-decoration:underline;}
.admin-bar a.admin-danger{color:#ff9d8a;}
.admin-bar .admin-sep{margin:0 .6rem;color:#7d7264;}

.admin-form{max-width:640px;}
.admin-form label{display:block;margin:1.1rem 0 .3rem;font-weight:600;}
.admin-form input[type=text], .admin-form input[type=password], .admin-form select{
  width:100%;padding:.55rem .7rem;font-size:1rem;border:1px solid var(--line);border-radius:4px;
  font-family:inherit;background:#fff;}
.admin-form input[type=file]{margin-top:.4rem;}
.admin-form button, .admin-danger-btn{margin-top:1.5rem;background:var(--maroon);color:#fff;border:none;
  padding:.65rem 1.4rem;border-radius:5px;font-size:1rem;cursor:pointer;}
.admin-form button:hover, .admin-danger-btn:hover{background:var(--maroon-dark);}
.admin-danger-btn{background:#a33;}
.admin-danger-btn:hover{background:#822;}
.admin-cancel{margin-left:1rem;color:var(--muted);}
.admin-error{color:#a33;font-weight:600;}
.admin-ok{color:#2a7a3a;font-weight:600;}
.admin-hint{color:var(--muted);font-size:.9rem;}
.admin-img-preview{margin:.5rem 0;}
.admin-img-preview img{max-width:280px;display:block;margin-bottom:.4rem;border-radius:4px;}
#editor{background:#fff;min-height:220px;font-size:1.05rem;}
.admin-html-source{width:100%;background:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.85rem;line-height:1.5;padding:.7rem;border:1px solid var(--line);border-radius:4px;resize:vertical;}
.ql-toolbar.ql-snow{border-radius:4px 4px 0 0;}
.ql-container.ql-snow{border-radius:0 0 4px 4px;}

@media (max-width:1200px){
  nav ul{gap:.35rem .85rem;font-size:.88rem;}
  .site-header{padding:1.2rem 1rem;}
}

@media (max-width:900px){
  nav ul{gap:.3rem .45rem;font-size:.72rem;}
  .site-header{padding:1.1rem .7rem;}
}

@media (max-width:600px){
  body{padding:1.75rem 0 0;}
  .page-card{border-radius:0;box-shadow:none;}
  ul.page-list.two-col, ul.home-list{column-count:1;}
  .site-signature a{font-size:1.7rem;}
  h1{font-size:2.1rem;}
  nav ul{gap:.3rem .55rem;font-size:.76rem;}
  .breadcrumbs{padding:0 1rem;}
}
