:root{
  --bg:#0a0c0f;
  --panel:#11151a;
  --panel-2:#151a20;
  --text:#eef2f5;
  --muted:#99a4af;
  --line:#252c34;
  --accent:#d7ff64;
  --accent-soft:#263018;
  --warn:#f7c46c;
  --success:#90e0a8;
  --max:1180px;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{
  margin:0;
  max-width:100%;
  overflow-x:hidden;
  background:var(--bg);
  color:var(--text);
  font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
a{color:inherit}
button,input,select,textarea{font:inherit}
.topbar{
  max-width:var(--max);
  margin:auto;
  padding:22px 24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
}
.brand{font-weight:800;letter-spacing:.11em;text-decoration:none}
.topnav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;min-width:0;max-width:100%}
.topnav a,.linkbutton{color:var(--text);text-decoration:none}
.linkbutton{background:none;border:0;padding:0;cursor:pointer}
.inline{display:inline}
.shell{max-width:var(--max);margin:auto;padding:54px 24px 96px}
.footer{
  max-width:var(--max);
  margin:auto;
  padding:24px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}
.eyebrow,.meta,.status-label{
  margin:0;
  color:var(--muted);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.identity{max-width:1000px;padding:28px 0 72px}
.identity h1{
  margin:12px 0 0;
  max-width:900px;
  font-size:clamp(28px,3.8vw,46px);
  line-height:1.04;
  letter-spacing:-.045em;
  font-weight:740;
}
.home-admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.section-header{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  margin-bottom:20px;
}
.section-header h2,.pagehead h1,.authbox h1{
  margin:4px 0 0;
  font-size:clamp(30px,5vw,52px);
  line-height:1.05;
  letter-spacing:-.035em;
}
.month-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.month-button,.calendar-filter,.small-button{
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--text);
  text-decoration:none;
  border-radius:7px;
}
.month-button{padding:9px 12px;font-size:13px}
.month-button.current-month{border-color:#46515d}
.calendar-tabs{display:flex;gap:8px;margin-bottom:14px}
.calendar-filter{padding:8px 13px;font-size:14px;cursor:pointer}
.calendar-filter.active{background:var(--accent);color:#111;border-color:var(--accent);font-weight:800}
.calendar-section.show-schedule-only .post-group{display:none}
.calendar-section.show-posts-only .schedule-group{display:none}
.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.weekday-head{border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;overflow:hidden}
.weekday{
  padding:9px 12px;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
  background:#0d1014;
}
.calendar-grid{
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  border-radius:0 0 10px 10px;
  overflow:hidden;
}
.day-cell{
  min-height:176px;
  padding:10px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--panel);
}
.day-cell.outside{background:#0d1013;color:#707a84}
.day-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}
.day-number{font-weight:750}
.day-weekday{display:none;color:var(--muted);font-size:12px}
.day-indicators{display:flex;gap:4px;margin-left:auto}
.dot{width:6px;height:6px;border-radius:50%;display:inline-block}
.schedule-dot{background:var(--accent)}
.post-dot{background:#7ca4d8}
.mobile-day-panel{display:none}
.day-group{margin-top:9px}
.day-label{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.calendar-item{
  display:block;
  margin:4px 0;
  padding:6px 7px;
  border-radius:5px;
  text-decoration:none;
  font-size:12px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.schedule-item{background:#1b2417;border-left:2px solid var(--accent)}.schedule-item.range-start,.schedule-item.range-middle,.schedule-item.range-end{background:#1d2918}.schedule-item.range-middle{border-left-style:dashed}.calendar-time{font-weight:700}
.post-item{background:#171f29;border-left:2px solid #7ca4d8}
.private-item{opacity:.82}
.calendar-time{margin-right:5px;color:var(--muted)}
.calendar-note{margin:12px 0 0;color:var(--muted);font-size:13px}
.recent-section{margin-top:78px;padding-top:34px;border-top:1px solid var(--line)}
.text-link{color:var(--muted);text-decoration:none}
.recent-list{display:grid}
.recent-post{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:22px;
  padding:24px 0;
  border-top:1px solid var(--line);
}
.recent-post:first-child{border-top:0}
.recent-date{color:var(--muted);font-size:13px}
.recent-post h3{margin:0 0 5px;font-size:24px}
.recent-post h3 a{text-decoration:none}
.recent-post p{margin:0;color:#b9c1c9;max-width:760px}
.pagehead{max-width:820px;margin-bottom:42px}
.pagehead>p:last-child{color:#b9c1c9;font-size:18px}
.post-list{display:grid}
.post-row{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:24px;
  padding:26px 0;
  border-top:1px solid var(--line);
}
.post-date{color:var(--muted);font-size:13px}
.post-row h2{margin:0;font-size:28px;line-height:1.2}
.post-row h2 a{text-decoration:none}
.post-row p{margin:8px 0 0;color:#b9c1c9}
.row-title-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.badge{
  display:inline-block;
  padding:3px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.04em;
}
.badge.success{color:var(--success);border-color:#315a3b}
.badge.warning{color:var(--warn);border-color:#654f26}
.article{max-width:820px}
.article h1{
  margin:10px 0 18px;
  font-size:clamp(42px,7vw,76px);
  line-height:1.02;
  letter-spacing:-.045em;
}
.lede{font-size:21px;color:#c1c9d1}
.prose{margin-top:40px;font-size:17px}
.prose h2{margin-top:48px;font-size:30px}
.prose h3{margin-top:34px;font-size:22px}
.prose a{color:var(--accent)}
.prose code{padding:2px 5px;background:#171c22;border-radius:4px}
.prose pre{overflow:auto;padding:18px;background:#0f1317;border:1px solid var(--line);border-radius:8px}
.prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.prose th,.prose td{padding:9px 11px;border:1px solid var(--line);text-align:left}
.event-meta{margin-top:30px;border-top:1px solid var(--line)}
.event-meta>div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.event-meta dt{color:var(--muted)}
.event-meta dd{margin:0}
.authbox{
  max-width:540px;
  margin:20px auto;
  padding:28px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
}
.authbox.wide{max-width:760px}
.form{display:grid;gap:17px;margin-top:24px}
.form label{display:grid;gap:7px;color:#dce2e7;min-width:0}
.form input,.form select,.form textarea{
  width:100%;
  max-width:100%;
  min-width:0;
  padding:11px 12px;
  color:var(--text);
  background:#0c0f13;
  border:1px solid var(--line);
  border-radius:6px;
}
.form textarea{resize:vertical}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.form-grid>*{min-width:0}
.button{
  display:inline-block;
  width:max-content;
  padding:10px 15px;
  background:var(--accent);
  color:#111;
  border:1px solid var(--accent);
  border-radius:6px;
  text-decoration:none;
  font-weight:800;
  cursor:pointer;
}
.button.secondary{background:transparent;color:var(--text);border-color:var(--line)}
.small-button{padding:7px 10px;cursor:pointer}
.danger-button{border-color:#6f3539!important;background:#251417!important;color:#f2a9ad!important}
.admin-row-actions,.schedule-admin-line,.event-admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.event-admin-actions{margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}
.error,.notice{
  margin-top:18px;
  padding:11px 12px;
  border-left:3px solid var(--warn);
  background:#1a1711;
}
.notice{border-color:var(--success);background:#101811}
.dashboard-head{display:flex;justify-content:space-between;gap:22px;align-items:end;max-width:none}
.dashboard-actions{display:flex;gap:10px;flex-wrap:wrap}
.status-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-bottom:34px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
}
.status-strip>div{padding:18px;background:var(--panel)}
.status-strip strong{display:block;margin-top:5px;overflow-wrap:anywhere}
.schedule-list{display:grid}
.schedule-row{
  display:grid;
  grid-template-columns:84px 1fr;
  gap:20px;
  padding:20px 0;
  border-top:1px solid var(--line);
}
.schedule-date{
  width:64px;height:64px;
  display:grid;place-content:center;
  text-align:center;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:8px;
}
.schedule-date span{font-size:11px;text-transform:uppercase;color:var(--muted)}
.schedule-date strong{font-size:23px;line-height:1}
.schedule-main h2{margin:3px 0;font-size:24px}
.schedule-main h2 a{text-decoration:none}
.schedule-main p{margin:4px 0;color:var(--muted)}
.admin-filter-tabs{display:flex;gap:8px;margin:0 0 14px}.admin-filter-tabs a{padding:8px 12px;border:1px solid var(--line);border-radius:7px;text-decoration:none}.admin-filter-tabs a.active{background:var(--accent);color:#111;border-color:var(--accent);font-weight:800}.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.admin-table{width:100%;border-collapse:collapse;min-width:720px}
.admin-table th,.admin-table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left}
.admin-table th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.admin-table tr:last-child td{border-bottom:0}
.field-note{color:var(--muted);font-size:12px;font-weight:400}
.admin-section{margin-top:34px}
.worklog-list{display:grid;gap:14px}
.worklog-card{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.worklog-card h3{margin:5px 0;font-size:22px}
.worklog-card p{margin:6px 0;color:#b9c1c9}
.worklog-card details{margin-top:12px}
.worklog-card summary{cursor:pointer;color:var(--accent)}
.compact{margin-top:16px}
.muted{color:var(--muted)}

@media (max-width: 820px){
  .shell{padding:36px 16px 72px}
  .topbar{height:auto;display:grid;grid-template-columns:1fr auto;padding:18px 16px;align-items:center;gap:14px}
  .topnav{grid-column:1/-1;width:100%;display:flex;flex-wrap:wrap;gap:9px 14px;overflow:visible}
  .language-select{margin-left:auto}
  .identity{padding:20px 0 50px}
  .identity h1{font-size:clamp(27px,7vw,38px);max-width:680px}
  .weekday-head{display:grid}
  .weekday{padding:7px 2px;text-align:center;font-size:10px}
  .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));border-radius:0 0 10px 10px}
  .day-cell{
    min-height:58px;
    padding:6px 4px;
    cursor:pointer;
    position:relative;
  }
  .day-cell.outside{display:block;opacity:.42}
  .day-cell.selected{background:#1a2027;box-shadow:inset 0 0 0 1px var(--accent)}
  .day-weekday{display:none}
  .day-top{justify-content:center;gap:4px;flex-wrap:wrap;margin:0}
  .day-number{font-size:14px;line-height:1}
  .day-indicators{width:100%;justify-content:center;margin:4px 0 0}
  .day-cell>.day-group{display:none!important}
  .mobile-day-panel{
    display:block;
    margin-top:14px;
    padding:16px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:9px;
  }
  .mobile-day-heading{margin-bottom:10px}
  .mobile-day-heading h3{margin:3px 0 0;font-size:21px}
  .mobile-day-panel .day-group{display:block}
  .mobile-day-panel .day-label{margin-top:12px}
  .mobile-day-panel .calendar-item{font-size:14px;padding:9px 10px}
  .recent-post,.post-row{grid-template-columns:1fr;gap:6px}
  .dashboard-head{display:block}
  .dashboard-actions{margin-top:20px}
  .status-strip{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .topbar{display:grid;padding:14px 12px}
  .topnav{margin-top:0;gap:8px 11px}
  .section-header{align-items:flex-start;display:block}
  .month-nav{margin-top:14px}
  .calendar-tabs{overflow:visible;flex-wrap:wrap}
  .footer{display:block}
  .footer span{display:block;margin:4px 0}
  .authbox{padding:20px}
}

.language-select{display:inline-flex;margin-left:8px;padding-left:10px;border-left:1px solid var(--line,#d9dde1)}
.language-select select{background:#fff;color:#101418;border:1px solid var(--line,#d9dde1);border-radius:5px;padding:4px 22px 4px 7px;font:inherit;font-size:9px;letter-spacing:.05em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
