
*{box-sizing:border-box}
:root{
  --danger:#aa4c51;
  --danger-dark:#88363b;
  --bg:#f8fafc;
  --card:#ffffff;
  --soft:#edf5fa;
  --soft-2:#ffffff;
  --line:#d7e0e6;
  --line-soft:#e4ebef;
  --text:#173247;
  --muted:#647786;
  --accent:#356f98;
  --accent-dark:#285875;
  --accent-soft:#eaf2f7;
  --available:#eef6fb;
  --available-line:#c7dce9;
  --available-text:#315873;
  --radius:12px;
}
html,body{min-height:100%}
body{
  margin:0;
  line-height:1.45;
  background:var(--bg);
  color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:15px;
}
button,input,select,textarea{font:inherit}
button{
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  border-radius:8px;
  padding:9px 14px;
  cursor:pointer;
}
button:hover:not(:disabled){border-color:var(--accent)}
button:disabled{opacity:.55;cursor:not-allowed}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
button.danger{background:var(--danger);border-color:var(--danger);color:#fff}
button.danger:hover:not(:disabled){background:var(--danger-dark);border-color:var(--danger-dark)}
button.compact{padding:7px 10px;font-size:13px}
.hidden{display:none!important}
header,main{width:100%;max-width:980px;margin:0 auto}
header h1{margin:0;font-size:28px;line-height:1.15;letter-spacing:-.02em;font-weight:750;color:#102f46}
main{padding:0 16px 64px}
.tabs{display:flex;gap:8px;margin:0 0 18px}
.tab-button{font-size:15px;padding:10px 16px;border-radius:8px}
.tab-button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
.panel{padding:0}
h2{margin:0 0 14px;font-size:23px;letter-spacing:-.01em;line-height:1.2}
h3{margin:22px 0 10px;font-size:18px;line-height:1.25}
label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
input,select,textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px 11px;
  font-family:inherit;
  font-size:14px;
  background:#fff;
  color:var(--text);
}
textarea{min-height:76px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(53,111,152,.18);border-color:var(--accent)}
.note{color:var(--muted);font-size:13px;line-height:1.4}
.small-note{color:var(--muted);font-size:12px;line-height:1.35;margin-top:5px}
.male-date-note-right{text-align:right}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}
.spacer{flex:1}

.calendar-toolbar{
  display:flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.year-picker{display:flex;align-items:center;gap:8px}
.year-picker strong{min-width:62px;text-align:center;font-size:18px}
.calendar-box{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.calendar-heading{align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line)}
.calendar-heading strong{font-size:18px}
.male-page-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.male-page-controls label{margin:0;font-size:12px;color:var(--muted);white-space:nowrap}
.male-page-controls select{width:62px;min-width:62px;padding:8px 9px}
.male-page-nav{display:flex;align-items:center;gap:8px}
.male-page-controls button{padding:5px 9px;min-width:34px}
.male-page-label{font-size:12px;color:var(--muted);font-weight:700;white-space:nowrap}
.plan-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:0}
.plan-table th,.plan-table td{padding:10px 8px;text-align:left;vertical-align:top;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);font-size:14px;overflow-wrap:anywhere}
.plan-table tr:last-child th,.plan-table tr:last-child td{border-bottom:0}
.plan-table th:last-child,.plan-table td:last-child{border-right:0}
.plan-table thead th{background:var(--accent-soft);font-size:12px;font-weight:650;color:#173247}
.plan-table thead th:first-child{width:112px}
.plan-table tbody th{background:#fff;font-weight:700}
.plan-table .gap-row th,.plan-table .gap-row td{background:#f7fbfd}
.plan-table .gap-row th{color:var(--available-text)}
.male-title{font-size:14px;font-weight:800;line-height:1.22;margin-bottom:5px;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.male-status{font-size:12px;line-height:1.35;color:var(--accent-dark);overflow-wrap:anywhere}
.male-status.problem{color:var(--danger-dark);font-weight:700}
.male-status.young{color:var(--muted)}
.cell-stack{display:grid;gap:7px}
.pairing-card{
  width:100%;
  text-align:left;
  border-radius:8px;
  padding:8px 8px;
  min-height:0;
  line-height:1.35;
  box-shadow:none;
}
.pairing-card strong{display:block;font-size:14px;margin-bottom:2px;white-space:normal}
.pairing-card span{display:block;font-size:13px}
.pairing-card.current{background:var(--accent);border-color:var(--accent);color:#fff}
.pairing-card.future{background:#dcecf6;border-color:#c8deeb;color:#244a67}
.pairing-card.past{background:#f0f4f6;border-color:#dce4e9;color:#556e7e}
.today-tag{display:inline-block;margin-top:6px;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.22);font-size:12px;font-weight:800}
.gap-card{border:1px solid var(--available-line);background:var(--available);color:var(--available-text);border-radius:8px;padding:8px;font-size:13px;line-height:1.35}
.gap-card strong{display:block;font-size:14px;color:var(--accent-dark)}
.empty-cell{color:#9aabb5;font-size:14px}
.calendar-legend{display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.legend-item{display:flex;align-items:center;gap:6px}
.legend-swatch{width:24px;height:12px;border:1px solid var(--line);border-radius:4px}
.calendar-young-toggle{display:inline-flex;align-items:center;gap:7px;margin-left:auto;cursor:pointer;user-select:none;color:var(--text)}
.calendar-young-toggle input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.legend-current{background:var(--accent);border-color:var(--accent)}
.legend-future{background:#dcecf6;border-color:#c8deeb}
.legend-past{background:#f0f4f6;border-color:#dce4e9}
.empty-state{padding:28px 18px;text-align:center}
.empty-state p{margin:0 0 14px;color:var(--muted)}

.data-backup-box{border:1px solid var(--line);border-radius:14px;background:var(--soft-2);margin:0 0 18px;overflow:hidden}
.data-backup-box summary{cursor:pointer;font-weight:800;color:var(--accent-dark);padding:12px 14px;list-style-position:inside}
.data-backup-box summary:hover{background:var(--accent-soft)}
.data-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-top:1px solid var(--line);background:#fff;padding:12px}
.data-tools .note{flex-basis:100%;margin-top:2px}
.editor-box{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px;margin-bottom:18px}
.editor-box h3{margin:0 0 12px}
.settings-row{display:grid;grid-template-columns:minmax(0,220px) auto;gap:10px;align-items:end}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-actions{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
table.data-table{width:100%;border-collapse:collapse;min-width:720px}
.data-table th,.data-table td{border-bottom:1px solid var(--line-soft);padding:10px 12px;text-align:left;vertical-align:top;font-size:14px}
.data-table th{background:var(--accent-soft);white-space:nowrap;font-size:12px;font-weight:650}
.data-table tr:last-child td{border-bottom:0}
.litter-counts{white-space:nowrap;line-height:1.45}
.row-actions{display:flex;gap:7px;flex-wrap:nowrap;justify-content:flex-end}
.castration-action{white-space:nowrap;width:102px;min-width:102px;max-width:102px;box-sizing:border-box;flex:0 0 102px}
.castration-action.is-planned{background:var(--accent-soft);border-color:#9fbccf;color:var(--accent-dark);font-weight:700}
.castration-closed-zone{position:absolute;left:6px;right:6px;z-index:1;width:calc(100% - 12px);background:#eef1f3;border:1px solid #b9c4cb;border-radius:8px;box-shadow:inset 4px 0 0 #9aa7af;pointer-events:none;overflow:hidden}
.castration-closed-label{display:block;padding:7px 7px;color:#596a74;font-size:12px;font-weight:800;line-height:1.25}
.male-table-tools{display:flex;justify-content:flex-end;margin:0 0 8px}
.column-picker{position:relative}
.column-picker>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 11px;font-size:13px;font-weight:650;color:var(--accent-dark);user-select:none}
.column-picker>summary::-webkit-details-marker{display:none}
.column-picker[open]>summary{background:var(--accent-soft)}
.column-picker-menu{position:absolute;right:0;top:calc(100% + 5px);z-index:20;min-width:245px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 10px 28px rgba(18,43,60,.14)}
.column-picker-menu label{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;white-space:nowrap}
.column-picker-menu input{width:auto}
.data-table.hide-col-birth th:nth-child(2),.data-table.hide-col-birth td:nth-child(2),
.data-table.hide-col-ready th:nth-child(3),.data-table.hide-col-ready td:nth-child(3),
.data-table.hide-col-mating th:nth-child(4),.data-table.hide-col-mating td:nth-child(4),
.data-table.hide-col-litters th:nth-child(5),.data-table.hide-col-litters td:nth-child(5){display:none}
.status-message{margin-left:4px;font-size:12px;color:var(--accent-dark)}

.file-input{position:absolute;left:-9999px}
dialog{width:min(600px,calc(100vw - 24px));border:0;border-radius:14px;padding:0;color:var(--text);box-shadow:0 24px 70px rgba(18,43,60,.28)}
dialog::backdrop{background:rgba(21,42,56,.46)}
.confirm-dialog{width:min(430px,calc(100vw - 24px))}
.confirm-dialog .dialog-body p{margin:0;line-height:1.45}
.dialog-head{display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid var(--line);background:var(--soft)}
.dialog-head h2{margin:0;font-size:20px}
.dialog-body{padding:15px;display:grid;gap:12px}
.dialog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dialog-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding:12px 15px;border-top:1px solid var(--line);background:#fff}
.companion-picker{position:relative}
.companion-picker-button{position:relative;width:100%;min-height:39px;border:1px solid var(--line);border-radius:8px;padding:10px 34px 10px 11px;background:#fff;color:var(--text);font-size:14px;line-height:18px;text-align:left;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.companion-picker-button::after{content:'▾';position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px}
.companion-picker-button[aria-expanded="true"]{outline:2px solid rgba(53,111,152,.18);border-color:var(--accent)}
.companion-picker-menu{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:40;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(18,43,60,.14);padding:5px 9px;max-height:260px;overflow:auto}
.companion-partner-list{background:#fff}
.companion-partner-option{display:flex;align-items:center;gap:8px;margin:0;padding:7px 2px;color:var(--text);font-size:14px;cursor:pointer}
.companion-partner-option+ .companion-partner-option{border-top:1px solid var(--line-soft)}
.companion-partner-option input,.companion-other-toggle input{width:auto;margin:0;accent-color:var(--accent)}
.companion-other-toggle{display:flex;align-items:center;gap:8px;margin:0;padding:7px 2px;border-top:1px solid var(--line-soft);color:var(--text);font-size:14px;cursor:pointer}
.companion-other-wrap{padding:2px 2px 7px 26px}
.companion-other-wrap label{margin-top:2px}
.companion-partner-empty{padding:7px 2px;color:var(--muted);font-size:13px}

@media (max-width:720px){
  header,main{padding-left:14px;padding-right:14px}
  .plan-table thead th:first-child{width:92px}
  .plan-table th,.plan-table td{padding:8px 6px}
  .male-title{font-size:13px}
  .male-status{font-size:12px}
  .calendar-toolbar{align-items:stretch}
  .calendar-toolbar .spacer{display:none}
  .male-page-controls{width:100%}
  .calendar-toolbar .primary{width:100%}
  .form-grid,.dialog-grid{grid-template-columns:1fr}
  .settings-row{grid-template-columns:1fr}
  .form-actions{grid-column:auto}
}
@media (max-width:480px){
  .tabs{display:grid;grid-template-columns:1fr 1fr}
  .tab-button{padding:10px 8px}
  .year-picker{width:100%;justify-content:space-between}
}
.calendar-columns{
  display:grid;
  grid-template-columns:repeat(var(--male-count),minmax(0,1fr));
  width:100%;
}
.male-calendar-column{
  min-width:0;
  border-right:1px solid var(--line-soft);
  background:#fff;
}
.male-calendar-column:last-child{border-right:0}
.male-calendar-head{
  min-height:58px;
  padding:9px 7px;
  text-align:center;
  background:var(--accent-soft);
  border-bottom:1px solid var(--line);
}
.male-calendar-head .male-title{
  margin:0;
  font-size:14px;
  line-height:1.25;
  font-weight:800;
  -webkit-line-clamp:2;
}
.male-calendar-head .male-status{margin-top:4px;font-size:12px}
.male-plan-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:8px 6px 10px;
}
.plan-card{
  width:100%;
  min-height:0;
  padding:8px 7px;
  border-radius:8px;
  text-align:left;
  line-height:1.32;
  box-shadow:none;
}
.plan-card strong{display:block;font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.plan-card .plan-kind{display:block;margin-top:2px;font-size:12px;font-weight:700}
.plan-card .plan-date{display:block;margin-top:2px;font-size:13px}
.plan-card.pairing.current{background:var(--accent);border-color:var(--accent);color:#fff}
.plan-card.pairing.future{background:#dcecf6;border-color:#c7deeb;color:#244a67}
.plan-card.pairing.past{background:#edf3f6;border-color:#d7e2e8;color:#516b7b}
.plan-card.companion.current{background:#4f7f9f;border-color:#4f7f9f;color:#fff}
.plan-card.companion.future{background:#e7f1f7;border-color:#cfdfE9;color:#315873}
.plan-card.companion.past{background:#f1f5f7;border-color:#dce5ea;color:#586f7e}
.plan-card.available{background:var(--available);border-color:var(--available-line);color:var(--available-text);cursor:default}
.plan-card.available strong{color:var(--accent-dark)}
.plan-card .today-tag{margin-top:5px}
.calendar-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:720px){
  .calendar-toolbar-actions{width:100%}
  .calendar-toolbar-actions button{flex:1}
  .male-plan-list{padding-left:5px;padding-right:5px}
  .plan-card{padding:7px 6px}
}
button.delete-button{
  border-color:#fecaca;
  color:#dc2626;
  background:#fff;
}
button.delete-button:hover:not(:disabled){
  background:#fef2f2;
  border-color:#fca5a5;
  color:#b91c1c;
}
.calendar-box{background:var(--card)}
.calendar-heading{background:var(--accent-soft)}
.timeline-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
}
.timeline-table th,.timeline-table td{
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  padding:8px;
  vertical-align:top;
}
.timeline-table th:last-child,.timeline-table td:last-child{border-right:0}
.timeline-table tbody tr:last-child th,.timeline-table tbody tr:last-child td{border-bottom:0}
.timeline-table tbody tr{height:62px}
.timeline-table thead th{
  background:var(--accent-soft);
  color:var(--text);
  text-align:center;
  font-size:14px;
  font-weight:750;
  line-height:1.25;
  padding:10px 6px;
}
.timeline-table thead th:first-child{
  width:92px;
  text-align:left;
}
.timeline-table tbody th{
  width:92px;
  background:#f8fbfd;
  color:var(--accent-dark);
  font-size:13px;
  font-weight:750;
  line-height:1.3;
  text-align:left;
  padding:10px 8px;
}
.timeline-table tbody tr.today-row th,
.timeline-table tbody tr.today-row td{
  background:#f8fcff;
}
.period-label{display:block}
.period-today{
  display:inline-block;
  margin-top:5px;
  padding:2px 7px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:11px;
  font-weight:800;
}
.timeline-status-cell{position:relative}
.timeline-status-cell>.timeline-cell{
  position:absolute;
  inset:8px;
  display:grid;
  gap:6px;
}
.timeline-status-cell .timeline-entry{height:100%}
.timeline-entry{
  min-width:0;
  border:1px solid var(--line);
  border-radius:8px;
  padding:7px 8px;
  line-height:1.3;
}
button.timeline-entry{
  width:100%;
  text-align:left;
  cursor:pointer;
}
.timeline-entry strong{
  display:block;
  font-size:14px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.timeline-entry small{
  display:block;
  margin-top:2px;
  font-size:12px;
  line-height:1.3;
  font-weight:700;
}
.timeline-entry.pairing{
  background:#eaf4fb;
  border-color:#78a8c8;
  color:#244f70;
}
.timeline-entry.companion{
  background:#356f98;
  border-color:#285875;
  color:#fff;
}
.timeline-entry.loan{
  background:#bfd7e5;
  border-color:#7ca8c0;
  color:#244a67;
}
.timeline-entry.available{
  background:#fff;
  border-color:var(--line-soft);
  color:var(--muted);
}
.timeline-entry.young{
  background:#fff8e8;
  border-color:#efcf91;
  color:#684716;
}
.timeline-entry.available strong,.timeline-entry.young strong{font-weight:650}
.calendar-legend{background:#fff;padding:10px 14px}
.legend-pairing{background:#eaf4fb;border-color:#78a8c8}
.legend-companion{background:#356f98;border-color:#285875}
.legend-loan{background:#bfd7e5;border-color:#7ca8c0}
.legend-gap{background:#fff;border-color:var(--line-soft)}
.legend-young{background:#fff8e8;border-color:#efcf91}
button.soft{
  background:#fff;
  border-color:var(--line);
  color:var(--accent-dark);
  font-weight:700;
}
button.soft:hover:not(:disabled){background:var(--accent-soft)}
.row-actions{align-items:center}
@media (max-width:720px){
  .timeline-table thead th:first-child,.timeline-table tbody th{width:76px}
  .timeline-table th,.timeline-table td{padding:6px 5px}
  .timeline-table thead th{font-size:13px}
  .timeline-entry{padding:7px 6px}
  .timeline-entry strong{font-size:13px}
}
.settings-box .settings-row>div:first-child{width:100px}
.settings-box input{padding:8px 10px}
.month-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
}
.month-table th,.month-table td{
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  padding:7px 6px;
  vertical-align:top;
}
.month-table th:last-child,.month-table td:last-child{border-right:0}
.month-table tbody tr:last-child th,.month-table tbody tr:last-child td{border-bottom:0}
.month-table thead th{
  background:#e8f2f8;
  color:var(--text);
  text-align:center;
  font-size:14px;
  font-weight:750;
  line-height:1.25;
  padding:10px 5px;
  overflow-wrap:anywhere;
}
.month-table thead th:first-child{width:82px}
.month-table tbody th{
  width:82px;
  background:#f6fafc;
  color:var(--accent-dark);
  font-size:13px;
  font-weight:800;
  text-align:left;
  padding:10px 8px;
}
.month-cell{display:grid;gap:6px;min-height:38px}
.month-entry{
  display:block;
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:8px;
  padding:7px 7px;
  text-align:left;
  line-height:1.25;
  overflow-wrap:anywhere;
}
button.month-entry{cursor:pointer}
.month-entry strong{display:block;font-size:14px;line-height:1.2}
.month-entry small{display:block;margin-top:2px;font-size:12px;font-weight:700}
.month-entry span{display:block;margin-top:2px;font-size:12px}
.month-entry.pairing.current{
  background:#cfe7f5;
  border-color:#5f9fc4;
  color:#173f5b;
  box-shadow:inset 4px 0 0 #397ba6;
}
.month-entry.pairing.future{
  background:#dceef8;
  border-color:#78abc8;
  color:#214d69;
}
.month-entry.pairing.past{
  background:#eef4f7;
  border-color:#ccdce5;
  color:#526d7d;
}
.month-entry.companion.current{
  background:#4f86a8;
  border-color:#356f98;
  color:#fff;
  box-shadow:inset 4px 0 0 #285875;
}
.month-entry.companion.future{
  background:#78a8c4;
  border-color:#4f86a8;
  color:#fff;
}
.month-entry.companion.past{
  background:#dce8ef;
  border-color:#b7ccda;
  color:#395b70;
}
.month-entry.loan.current,
.month-entry.loan.future{
  background:#bfd7e5;
  border-color:#7ca8c0;
  color:#244a67;
  box-shadow:inset 4px 0 0 #5e8eaa;
}
.month-entry.loan.past{
  background:#e4eef3;
  border-color:#c4d8e3;
  color:#526d7d;
}
.month-entry.available{
  background:#fff;
  border-color:#d7e0e6;
  color:#607685;
}
.month-entry.young{
  background:#e9eff3;
  border-color:#c8d6df;
  color:#60717d;
}
.month-empty{color:#afbbc3;font-size:13px}
.calendar-legend .legend-young{background:#fff8e8;border-color:#efcf91}
.period-today,.today-tag{display:none!important}

@media (max-width:760px){
  .settings-box{display:block}
  .settings-box h3{margin-bottom:10px}
  .month-table thead th:first-child,.month-table tbody th{width:72px}
  .month-table th,.month-table td{padding:6px 5px}
  .month-entry{padding:7px 6px}
  .month-entry strong{font-size:13px}
}
.settings-box{
  min-height:0;
}
.settings-inline-value input{padding:7px 9px}
.settings-inline-value span{font-size:13px;color:var(--muted)}
.settings-box button{padding:7px 12px}

.dialog-head{justify-content:space-between}
.dialog-close{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0;
  border:2px solid #17212b;
  border-radius:11px;
  background:#fff;
  color:var(--text);
  font-size:25px;
  line-height:1;
  font-weight:400;
}
.dialog-close:hover:not(:disabled){background:#f7fafc;border-color:#17212b}
.age-warning-text{margin:0;color:var(--text);font-size:14px;line-height:1.5}
.age-warning-detail{margin:0;padding:10px 12px;border:1px solid #efcf91;border-radius:9px;background:#fff8e8;color:#684716;font-weight:700}

.calendar-scroll{overflow:hidden}
.continuous-calendar{
  --month-height:68px;
  display:grid;
  grid-template-columns:74px repeat(var(--male-count),minmax(0,1fr));
  grid-template-rows:auto auto;
  width:100%;
  min-width:0;
}
.calendar-corner{
  grid-column:1;
  grid-row:1;
  background:#e8f2f8;
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line);
}
.male-drag-head{
  min-width:0;
  padding:10px 5px 9px;
  text-align:center;
  background:#e8f2f8;
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line);
  cursor:grab;
  user-select:none;
}
.male-drag-head:last-of-type{border-right:0}
.male-drag-head:active{cursor:grabbing}
.male-drag-head.dragging{opacity:.45}
.male-drag-head.drag-over{box-shadow:inset 3px 0 0 var(--accent)}
.male-drag-name{
  display:block;
  font-size:14px;
  font-weight:800;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.male-drag-mark{
  display:block;
  margin-top:3px;
  color:#7690a2;
  font-size:13px;
  line-height:1;
  letter-spacing:-2px;
}
.month-axis{
  grid-column:1;
  grid-row:2;
  display:grid;
  border-right:1px solid var(--line-soft);
  background:#f7fbfd;
}
.month-axis-label{
  min-height:0;
  padding:9px 5px;
  border-bottom:1px solid var(--line-soft);
  color:var(--accent-dark);
  font-size:13px;
  font-weight:600;
  line-height:1.25;
}
.month-axis-label:last-child{border-bottom:0}
.male-year-track{
  position:relative;
  grid-row:2;
  min-width:0;
  background:#fff;
  border-right:1px solid var(--line-soft);
}
.male-year-track:last-child{border-right:0}
.male-year-track.pairing-drop-over{box-shadow:inset 0 0 0 3px var(--accent);z-index:3}
.calendar-block.pairing[draggable="true"]{cursor:grab}
.calendar-block.pairing[draggable="true"]:active{cursor:grabbing}
.calendar-block.pairing.dragging-pairing{opacity:.45}
.track-month-grid{
  position:absolute;
  inset:0;
  display:grid;
  pointer-events:none;
}
.track-month-grid>div{border-bottom:1px solid var(--line-soft)}
.track-month-grid>div:last-child{border-bottom:0}
.calendar-block{
  position:absolute;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  left:6px;
  right:6px;
  z-index:2;
  width:calc(100% - 12px);
  min-height:0;
  border-radius:8px;
  padding:7px 7px;
  text-align:left;
  overflow:hidden;
  line-height:1.25;
  box-shadow:none;
}
button.calendar-block{cursor:pointer}
.calendar-block strong{
  display:block;
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  overflow-wrap:anywhere;
}
.calendar-block small{
  display:block;
  margin-top:3px;
  font-size:12px;
  font-weight:400;
}
.calendar-block span{
  display:block;
  margin-top:3px;
  font-size:13px;
  font-weight:400;
}
.calendar-block.compact-period{
  padding:4px 6px;
  line-height:1.1;
}
.calendar-block.compact-period strong{
  font-size:13px;
  line-height:1.08;
}
.calendar-block.compact-period small{
  margin-top:1px;
  font-size:11px;
  line-height:1.08;
}
.calendar-block.compact-period span{
  margin-top:1px;
  font-size:12px;
  line-height:1.08;
}
.calendar-block.single-line-period{
  flex-direction:row;
  align-items:center;
  gap:0;
  padding:1px 4px;
  white-space:nowrap;
  overflow:hidden;
}
.calendar-block.single-line-period strong,
.calendar-block.single-line-period small,
.calendar-block.single-line-period span{
  display:inline;
  flex:0 0 auto;
  margin:0;
  font-size:9px;
  line-height:1;
  white-space:nowrap;
}
.calendar-block.single-line-period small::before,
.calendar-block.single-line-period span::before{content:" · ";}
.calendar-block.pairing{
  background:#eaf4fb;
  border-color:#78a8c8;
  color:#244a67;
  box-shadow:inset 4px 0 0 #397ba6;
}
.timeline-overlap-cluster{
  position:absolute;
  left:6px;
  right:6px;
  z-index:6;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
  border-radius:8px;
  box-sizing:border-box;
}
.timeline-overlap-cluster.pairing{
  background:#eaf4fb;
  border:1px solid #78a8c8;
  color:#244a67;
  box-shadow:inset 4px 0 0 #397ba6;
}
.timeline-overlap-cluster.companion{
  background:#356f98;
  border:1px solid #285875;
  color:#fff;
  box-shadow:inset 4px 0 0 #285875;
}
.timeline-segment-row{
  min-height:0;
  overflow:hidden;
  box-sizing:border-box;
  padding:5px 7px 4px 9px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
}
.timeline-overlap-cluster.pairing .timeline-segment-row+.timeline-segment-row{border-top:1px solid #8fb9d3}
.timeline-overlap-cluster.companion .timeline-segment-row+.timeline-segment-row{border-top:1px solid rgba(255,255,255,.30)}
.timeline-segment-button{
  width:100%;
  height:100%;
  min-height:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  padding:0;
  text-align:left;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  overflow:hidden;
  cursor:pointer;
}
.timeline-segment-button strong{
  display:block;
  font-size:14px;
  font-weight:700;
  line-height:1.16;
  overflow-wrap:normal;
  word-break:normal;
}
.timeline-segment-button small{
  display:block;
  margin-top:2px;
  font-size:12px;
  font-weight:400;
  line-height:1.1;
}
.timeline-segment-button span{
  display:block;
  margin-top:2px;
  font-size:12px;
  font-weight:400;
  line-height:1.1;
}
.timeline-segment-row.overlap-row{
  padding:4px 6px 3px 9px;
  justify-content:flex-start;
}
.combined-period-label{
  display:block;
  width:100%;
  font-size:14px;
  font-weight:700;
  line-height:1.16;
  overflow-wrap:normal;
  word-break:normal;
}
.combined-period-link{
  display:inline;
  border:0;
  background:transparent;
  color:inherit;
  padding:0;
  font:inherit;
  font-weight:700;
  line-height:inherit;
  text-align:left;
  cursor:pointer;
}
.combined-period-link:hover{text-decoration:underline}
.calendar-block.companion{
  background:#356f98;
  border-color:#285875;
  color:#fff;
  box-shadow:inset 4px 0 0 #285875;
}
.calendar-block.loan{
  background:#bfd7e5;
  border-color:#7ca8c0;
  color:#244a67;
  box-shadow:inset 4px 0 0 #5e8eaa;
}
.calendar-block.available{
  background:#fff;
  border-color:#d7e0e6;
  color:#607685;
  box-shadow:inset 3px 0 0 #d9e5ec;
}
.calendar-block.available strong{font-weight:400}
.calendar-block.available.compact-gap{
  min-height:0;
  padding:0 4px;
  justify-content:center;
  border-radius:4px;
  overflow:hidden;
  z-index:4;
}
.calendar-block.available.compact-gap strong{
  display:block;
  width:100%;
  font-size:10px;
  line-height:1;
  font-weight:400;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.calendar-block.available.compact-gap span{
  display:inline;
  margin:0 0 0 3px;
  font-size:10px;
  line-height:1;
}
.calendar-block.available.micro-gap{
  min-height:0;
  padding:0;
  border-radius:2px;
  background:#edf5f9;
  box-shadow:none;
  z-index:4;
}
.calendar-block.available.micro-gap strong,
.calendar-block.available.micro-gap span{display:none}
.calendar-empty{padding:20px;text-align:center;color:var(--muted)}
.calendar-legend .legend-pairing{background:#eaf4fb;border-color:#78a8c8}
.calendar-legend .legend-companion{background:#356f98;border-color:#285875}
.calendar-legend .legend-loan{background:#bfd7e5;border-color:#7ca8c0}
.calendar-legend .legend-gap{background:#fff;border-color:#d7e0e6}

@media (max-width:760px){
  .continuous-calendar{grid-template-columns:64px repeat(var(--male-count),minmax(0,1fr));--month-height:66px}
  .male-drag-name{font-size:13px}
  .month-axis-label{font-size:12px;padding-left:4px;padding-right:4px}
  .calendar-block{left:4px;right:4px;width:calc(100% - 8px);padding:6px 5px}
  .calendar-block strong{font-size:13px}
  .calendar-block span{font-size:12px}
}
.settings-box h3{
  flex:0 0 auto;
}
.settings-box .settings-row{
  width:auto;
  min-width:0;
}
.settings-inline-value{
  white-space:nowrap;width:auto!important;
}
.calendar-block.available{cursor:pointer}
.calendar-block.available:hover{border-color:#9ebed2;background:#f7fbfd}
.choice-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice-buttons button{min-height:46px}
.dmk-import-summary{margin:0;color:var(--text)}
.dmk-preview-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.dmk-preview{width:100%;border-collapse:collapse;min-width:560px}
.dmk-preview th,.dmk-preview td{padding:9px 10px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top;font-size:13px}
.dmk-preview th{background:var(--accent-soft);font-size:12px}
.dmk-preview tr:last-child td{border-bottom:0}
.dmk-preview .import-status{color:var(--muted)}
.dmk-preview .import-ready{color:var(--accent-dark);font-weight:700}
.dmk-preview input[type="checkbox"]{width:auto}
.dmk-paste-help{margin:0 0 8px;color:var(--muted);font-size:13px}
.dmk-paste-text{min-height:170px;resize:vertical}
.dmk-paste-actions{display:flex;justify-content:flex-end;margin-top:10px}
.dmk-preview-section{display:grid;gap:10px;margin-top:14px}
@media (max-width:760px){
  .settings-box h3{white-space:normal}
  .settings-box .settings-row{flex-wrap:wrap}
  .choice-buttons{grid-template-columns:1fr}
}
.settings-box{justify-content:flex-start}
.settings-box .dmk-settings-button{margin-left:auto;white-space:nowrap}
.dmk-import-dialog{width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}
.dmk-import-dialog[open]{display:flex;flex-direction:column}
.dmk-import-dialog .dialog-head,.dmk-import-dialog .dialog-actions{flex:0 0 auto}
.dmk-import-dialog .dialog-body{flex:1 1 auto;min-height:0;overflow:auto}
.dmk-import-dialog .dialog-body.results-visible .dmk-import-intro,
.dmk-import-dialog .dialog-body.results-visible .dmk-import-heading,
.dmk-import-dialog .dialog-body.results-visible .dmk-steps,
.dmk-import-dialog .dialog-body.results-visible .dmk-mobile-note{display:none}
.dmk-import-dialog .dialog-body.results-visible .dmk-paste-text{min-height:150px;height:150px}
.dmk-import-dialog .dialog-body.results-visible .dmk-preview-section{margin-top:2px}
.dmk-import-intro{margin:0;color:var(--muted);font-size:14px;line-height:1.45}
.dmk-import-heading{margin:2px 0 0;font-size:16px}
.dmk-steps{margin:0;padding-left:22px;display:grid;gap:5px;color:var(--text)}
.dmk-steps strong{font-weight:700}
.dmk-mobile-note{margin:0;color:var(--muted);font-size:12px}
.dmk-repeat-note{margin:0;color:var(--muted);font-size:13px}
.dmk-birth{display:block;margin-top:2px;color:var(--muted);font-size:12px;white-space:nowrap}
@media (max-width:760px){
  .settings-box{flex-direction:column;align-items:stretch;gap:10px}
  .settings-box .dmk-settings-button{margin-left:0;width:100%;white-space:normal}
  .settings-box .settings-row{width:100%}
}
.dmk-import-section{display:grid;gap:10px;margin:0 0 18px}
.dmk-import-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:0;
}
.dmk-import-row .soft{
  flex:0 0 auto;
  background:#fff;
  border-color:var(--accent);
  color:var(--accent-dark);
  font-weight:700;
}
.dmk-import-row .note{margin:0}
.settings-box{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:12px 16px;
}
.settings-box h3{
  margin:0;
  font-size:16px;
  white-space:nowrap;
}
.settings-box .settings-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
}
.settings-inline-value{display:flex;align-items:center;gap:8px}
.settings-inline-value input{width:86px;min-width:86px}
@media (max-width:720px){
  .dmk-import-row{align-items:stretch;gap:8px}
  .dmk-import-row .soft{width:100%}
  .settings-box{align-items:flex-start;flex-direction:column}
  .settings-box .settings-row{width:100%;flex-wrap:wrap}
}
#tab-calendar > .calendar-section-heading .section-title,
#tab-males > h2{
  margin:22px 0 6px;
  font-size:21px;
  color:#102f46;
}
#tab-calendar > .calendar-section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 12px;
}
#tab-calendar > .calendar-section-heading .section-title{margin:0}
#tab-males > .males-intro{margin:0 0 14px}

.calendar-toolbar{
  flex-wrap:nowrap;
  gap:7px;
  padding:10px 12px;
  margin-bottom:14px;
}
.calendar-toolbar .year-picker,
.calendar-toolbar .male-page-controls,
.calendar-toolbar .calendar-toolbar-actions{
  flex-wrap:nowrap;
  white-space:nowrap;
}
.calendar-toolbar button{
  padding:7px 10px;
  font-size:13px;
}
.calendar-toolbar .year-picker{gap:6px}
.calendar-toolbar .year-picker strong{
  min-width:54px;
  font-size:17px;
}
.calendar-toolbar .male-page-controls{gap:6px}
.calendar-toolbar .male-page-controls label{font-size:11px}
.calendar-toolbar .male-page-controls select{
  width:50px;
  min-width:50px;
  padding:7px 6px;
  font-size:13px;
}
.calendar-toolbar .male-page-nav{gap:5px}
.calendar-toolbar .male-page-controls button{
  min-width:32px;
  padding:5px 8px;
}
.calendar-toolbar .male-page-label{font-size:11px}
.calendar-toolbar .calendar-toolbar-actions{gap:7px}
.calendar-toolbar .calendar-toolbar-actions button{padding-left:7px;padding-right:7px;font-size:12.5px}
.calendar-box{margin:0}
.calendar-heading{display:none!important}

#tab-males .dmk-import-section{margin:0 0 16px}
#tab-males .dmk-import-row .soft{
  border-width:2px;
  background:#fff;
}
#tab-males .data-backup-box{margin:14px 0 18px}
#tab-males .settings-box{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:0;
  margin:0 0 18px;
  border:0;
  border-radius:0;
  background:transparent;
}
#tab-males .settings-box h3{
  margin:0;
  font-size:16px;
  white-space:nowrap;
}
#tab-males .settings-box .settings-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
}
#tab-males #maleFormTitle{
  margin:22px 0 10px;
  font-size:18px;
  color:#102f46;
}
#tab-males .male-form{margin:0 0 22px}
#tab-males > h3:not(#maleFormTitle){
  margin:22px 0 10px;
  color:#102f46;
}

@media (max-width:920px){
  .calendar-toolbar{flex-wrap:wrap}
  .calendar-toolbar .spacer{display:none}
  .calendar-toolbar .calendar-toolbar-actions{width:100%}
}
@media (max-width:720px){
  #tab-calendar > .section-title,
  #tab-males > h2{margin-top:18px}
  .calendar-toolbar .male-page-controls{width:auto}
  .calendar-toolbar .calendar-toolbar-actions{flex-wrap:wrap}
  .calendar-toolbar .calendar-toolbar-actions button{flex:1 1 auto}
  #tab-males .settings-box{align-items:flex-start;flex-direction:column;gap:8px}
  #tab-males .settings-box h3{white-space:normal}
  #tab-males .settings-box .settings-row{width:100%;flex-wrap:wrap}
}
#tab-calendar > .section-title{
  font-size:18px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:0;
  color:var(--accent-dark);
}
#tab-calendar .calendar-toolbar{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
#tab-calendar .calendar-toolbar .year-picker,
#tab-calendar .calendar-toolbar .male-page-controls,
#tab-calendar .calendar-toolbar .calendar-toolbar-actions{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  white-space:nowrap;
}
#tab-calendar .calendar-toolbar .year-picker{gap:6px}
#tab-calendar .calendar-toolbar .year-picker button{
  min-width:40px;
  height:40px;
  padding:7px 10px;
}
#tab-calendar .calendar-toolbar .year-picker strong{
  min-width:54px;
}
#tab-calendar .calendar-toolbar .male-page-controls{gap:6px}
#tab-calendar .calendar-toolbar .male-page-controls label{
  margin:0;
  font-size:11px;
}
#tab-calendar .calendar-toolbar .male-page-controls select{
  width:50px;
  min-width:50px;
  height:40px;
  padding:7px 6px;
  font-size:13px;
}
#tab-calendar .calendar-toolbar .male-page-nav{gap:5px}
#tab-calendar .calendar-toolbar .male-page-controls button{
  min-width:40px;
  height:40px;
  padding:6px 8px;
}
#tab-calendar .calendar-toolbar .male-page-label{font-size:11px}
#tab-calendar .calendar-toolbar .calendar-toolbar-actions button{
  min-height:40px;
  padding:7px 10px;
  font-size:12.5px;
}
#tab-calendar .calendar-box{
  margin:0;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
}
#tab-calendar .calendar-heading{display:none!important}

@media (max-width:920px){
  #tab-calendar .calendar-toolbar{flex-wrap:wrap}
  #tab-calendar .calendar-toolbar .calendar-toolbar-actions{width:100%}
}
@media (max-width:720px){
  #tab-calendar > .section-title{margin-bottom:12px}
  #tab-calendar .calendar-toolbar .male-page-controls{width:auto}
  #tab-calendar .calendar-toolbar .calendar-toolbar-actions{flex-wrap:wrap}
  #tab-calendar .calendar-toolbar .calendar-toolbar-actions button{flex:1 1 auto}
}
#tab-calendar > .section-title{
  margin:0 0 16px;
}
#tab-calendar .calendar-toolbar{
  gap:16px;
  margin:0 0 22px;
}
#tab-calendar .calendar-toolbar .year-picker,
#tab-calendar .calendar-toolbar .male-page-controls{
  gap:8px;
}
#tab-calendar .calendar-toolbar .spacer{
  min-width:20px;
}
#tab-calendar .calendar-toolbar .calendar-toolbar-actions{
  gap:8px;
}
#tab-calendar .calendar-toolbar .year-picker button,
#tab-calendar .calendar-toolbar .male-page-controls button,
#tab-calendar .calendar-toolbar .male-page-controls select,
#tab-calendar .calendar-toolbar .calendar-toolbar-actions button{
  height:38px;
  min-height:38px;
}
#tab-calendar .calendar-toolbar .year-picker button,
#tab-calendar .calendar-toolbar .male-page-controls button{
  min-width:38px;
}
#tab-calendar .calendar-corner,
#tab-calendar .male-drag-head,
#tab-calendar .month-axis,
#tab-calendar .male-year-track{
  border-right-color:#e8eef2;
}
#tab-calendar .month-axis{
  background:#fff;
}
#tab-calendar .calendar-legend{
  border-top-color:#dde6eb;
}
@media (max-width:920px){
  #tab-calendar .calendar-toolbar{gap:10px;row-gap:10px}
  #tab-calendar .calendar-toolbar .spacer{display:none}
}
@media (max-width:760px){
  #tab-calendar .calendar-young-toggle{margin-left:0}
}
header{
  padding:22px 16px 18px;
}
#tab-calendar .calendar-box{
  background:#fff;
  border-color:var(--line);
  box-shadow:none;
  overflow:visible;
}
#tab-calendar .calendar-scroll{
  overflow:visible;
}
#tab-calendar .calendar-corner,
#tab-calendar .male-drag-head{
  position:sticky;
  top:0;
  z-index:20;
}
#tab-calendar .calendar-corner,
#tab-calendar .male-drag-head{
  background:var(--accent-soft);
  border-right-color:var(--line-soft);
  border-bottom-color:var(--line);
}
#tab-calendar .month-axis,
#tab-calendar .male-year-track{
  background:#fff;
}
#tab-calendar .month-axis,
#tab-calendar .male-year-track,
#tab-calendar .calendar-corner,
#tab-calendar .male-drag-head{
  border-right-color:var(--line-soft);
}
#tab-calendar .month-axis-label,
#tab-calendar .track-month-grid>div{
  border-bottom-color:var(--line-soft);
}
#tab-calendar .year-picker strong,
#tab-calendar .male-page-label,
#tab-calendar .calendar-toolbar button,
#tab-calendar .calendar-toolbar select,
#tab-calendar .month-axis-label{
  font-weight:400;
}
#tab-calendar .male-drag-name,
#tab-calendar .calendar-block strong{
  font-weight:700;
}
#tab-calendar .calendar-block small,
#tab-calendar .calendar-block span,
#tab-calendar .calendar-legend{
  font-weight:400;
}
#tab-calendar .calendar-block.pairing{
  background:#eaf4fb;
  border-color:#78a8c8;
  color:#244a67;
  box-shadow:inset 4px 0 0 #397ba6;
}
#tab-calendar .calendar-block.companion{
  background:#356f98;
  border-color:#285875;
  color:#fff;
  box-shadow:inset 4px 0 0 #285875;
}
#tab-calendar .calendar-block.loan{
  background:#bfd7e5;
  border-color:#7ca8c0;
  color:#244a67;
  box-shadow:inset 4px 0 0 #5e8eaa;
}
#tab-calendar .calendar-block.available{
  background:#fff;
  border-color:var(--line-soft);
  color:var(--muted);
  box-shadow:inset 3px 0 0 #d9e5ec;
}
#tab-calendar .calendar-block.available.young-gap{
  background:#fff8e8;
  border-color:#efcf91;
  color:#684716;
  box-shadow:inset 3px 0 0 #efcf91;
}
#tab-calendar .calendar-block.available.young-gap strong{font-weight:650}
#tab-calendar .calendar-legend .legend-pairing{
  background:#eaf4fb;
  border-color:#78a8c8;
}
#tab-calendar .calendar-legend .legend-companion{
  background:#356f98;
  border-color:#285875;
}
#tab-calendar .calendar-legend .legend-loan{
  background:#bfd7e5;
  border-color:#7ca8c0;
}
#tab-calendar .calendar-legend .legend-gap{
  background:#fff;
  border-color:var(--line-soft);
}
#tab-calendar .calendar-toolbar .male-page-controls label,
#tab-calendar .calendar-toolbar .male-page-label{
  font-size:13px;
}
#tab-calendar .calendar-toolbar .male-page-controls select,
#tab-calendar .calendar-toolbar .calendar-toolbar-actions button,
#tab-calendar .calendar-toolbar .year-picker button,
#tab-calendar .calendar-toolbar .male-page-controls button{
  font-size:14px;
}
#tab-calendar .calendar-toolbar .year-picker strong{
  font-size:18px;
}
#tab-calendar .calendar-block strong{
  font-size:14px;
  line-height:1.2;
}
#tab-calendar .calendar-block small,
#tab-calendar .calendar-block span{
  font-size:13px;
  line-height:1.15;
}
#tab-calendar .calendar-block.compact-period{
  padding:3px 6px;
  line-height:1.15;
}
#tab-calendar .calendar-block.compact-period strong{
  font-size:14px;
  line-height:1.15;
}
#tab-calendar .calendar-block.compact-period small,
#tab-calendar .calendar-block.compact-period span{
  margin-top:1px;
  font-size:13px;
  line-height:1.1;
}
#tab-calendar .calendar-block.single-line-period{
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:0;
  padding:3px 6px;
  white-space:normal;
}
#tab-calendar .calendar-block.single-line-period strong{
  display:block;
  width:100%;
  margin:0;
  font-size:14px;
  line-height:1.15;
  white-space:normal;
  overflow:hidden;
  text-overflow:ellipsis;
}
#tab-calendar .calendar-block.single-line-period small,
#tab-calendar .calendar-block.single-line-period span{
  display:none;
}
#tab-calendar .calendar-block.available.compact-gap{
  padding:0 5px;
}
#tab-calendar .calendar-block.available.compact-gap strong{
  font-size:13px;
  line-height:1.15;
}
#tab-calendar .calendar-block.available.compact-gap span{
  display:none;
}
@media (max-width:760px){
  #tab-calendar .calendar-block strong,
  #tab-calendar .calendar-block.compact-period strong,
  #tab-calendar .calendar-block.single-line-period strong{
    font-size:14px;
  }
  #tab-calendar .calendar-block small,
  #tab-calendar .calendar-block span,
  #tab-calendar .calendar-block.compact-period small,
  #tab-calendar .calendar-block.compact-period span{
    font-size:13px;
  }
}

/* Programkoden ligger server-side. */
