/* Housing Court Filer — Calendar.
   Ported from the approved calendar.html screen and scoped to this route. This screen is the
   reference for the system's typography, which now lives in typography.css: nothing here sets a
   font, or re-sizes, re-weights or re-cases a heading, label or table cell. */

.calendar-page{
  --navy:#213d66;--gold:#e4b64f;--line:#e1e6ed;--muted:var(--hcf-navy);--ink:#172941;
  --shadow-sm:0 3px 12px rgba(27,48,79,.08);
  color:var(--hcf-text);
}
.calendar-page .icon{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.calendar-page a{color:inherit;text-decoration:none}
.calendar-page button{cursor:pointer;font:inherit;color:inherit}

.calendar-page .page-breadcrumb{display:flex;gap:8px;align-items:center;margin:4px 0 18px}
.calendar-page .module-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.calendar-page .module-heading h1{margin:0}
.calendar-page .module-heading p{margin:4px 0 0}

.calendar-page .calendar-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,2fr) 360px;gap:14px}
.calendar-page .standard-card{overflow:hidden}
.calendar-page .calendar-controls{display:flex;align-items:center;gap:9px}
.calendar-page .calendar-controls button{border:0;background:#eef2f7;width:30px;height:30px;padding:0;display:grid;place-items:center}
.calendar-page .calendar-controls button[disabled]{opacity:.55;cursor:not-allowed}
.calendar-page .calendar-controls strong{min-width:112px;text-align:center}

.calendar-page .calendar-filter-card{position:relative;z-index:30;margin-bottom:14px;overflow:visible}
.calendar-page .calendar-filter-grid{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,220px) minmax(150px,220px) auto;gap:12px;align-items:end;padding:14px 16px}
.calendar-page .calendar-filter-grid label{position:relative;display:grid;gap:6px}
.calendar-page .calendar-filter-card .date-field{z-index:1}
.calendar-page .calendar-filter-card .date-field-open{z-index:80}
.calendar-page .calendar-report-actions{display:flex;gap:8px;align-items:center}

.calendar-page .table-scroll{overflow:auto}
.calendar-page .calendar-hearing-notes{white-space:pre-wrap;overflow-wrap:anywhere;min-width:180px}
.calendar-page .hcf-table{width:100%;border-collapse:collapse;margin:0!important}
.calendar-page .hcf-table th,.calendar-page .hcf-table td{padding:10px 12px!important;border-bottom:1px solid #edf0f3!important;text-align:left;vertical-align:top;background:#fff}
.calendar-page .hcf-table th{background:#fafafa!important}
.calendar-page .hcf-table tr:hover td{background:#fbfcfe}
.calendar-page .hcf-table tr.calendar-highlight td{background:#eef8f2!important;box-shadow:inset 0 1px #8bc5a4,inset 0 -1px #8bc5a4}
.calendar-page .hcf-table tr.calendar-highlight td:first-child{box-shadow:inset 4px 0 #177245,inset 0 1px #8bc5a4,inset 0 -1px #8bc5a4}
.calendar-page .empty-table{text-align:center!important;padding:30px!important}

.calendar-page .month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:15px}
.calendar-page .month-grid>span{text-align:center;font-size:var(--hcf-text-caption);color:var(--hcf-text-meta)}
.calendar-page .month-grid .month-offset{aspect-ratio:1}
.calendar-page .month-grid button{border:0;background:#f8fafc;aspect-ratio:1;border-radius:7px;padding:0}
.calendar-page .month-grid button.today{background:var(--navy);color:var(--hcf-text-inverse)}
.calendar-page .month-grid button.has-event{box-shadow:inset 0 -3px var(--gold)}
.calendar-page .month-grid button.selected{outline:2px solid #177245;outline-offset:1px}
.calendar-page .calendar-focus-banner{margin:0 0 14px;padding:11px 14px;border:1px solid #a8d4ba;border-radius:9px;background:#eef8f2;color:var(--hcf-text-success)}

/* The report itself lives in an isolated frame carrying the printable stylesheet, so nothing here
   describes its interior -- only the shell it sits in. */
.calendar-page .calendar-report-shell{margin-top:18px;overflow:hidden}
.calendar-page .calendar-report-embed{display:block}
.calendar-page .calendar-report-embed iframe{width:100%;border:0;display:block;min-height:320px}

/* ------------------------------------------------- printable preview (mirrors the invoice viewer) */
.calendar-page .cal-backdrop{z-index:9000}
.calendar-page .cal-modal{width:min(1060px,100%);height:min(880px,92vh);max-height:none}
.calendar-page .cal-head-actions{display:flex;align-items:center;gap:8px;flex:none}
.calendar-page .cal-preview-body{flex:1;min-height:0;display:flex;flex-direction:column;background:#f4f6f9}
.calendar-page .cal-preview-surface{flex:1;min-height:0;overflow:auto}
.calendar-page .cal-preview-surface iframe{width:100%;height:100%;border:0;display:block;background:#fff}

@media(max-width:1100px){
  .calendar-page .calendar-layout{grid-template-columns:1fr}
  .calendar-page .mini-calendar{max-width:420px}
  .calendar-page .calendar-filter-grid{grid-template-columns:1fr 1fr}
  .calendar-page .calendar-report-actions{grid-column:1/-1}
}
@media(max-width:620px){
  .calendar-page .module-heading{align-items:flex-start;flex-direction:column}
  .calendar-page .standard-card>header{align-items:flex-start;gap:10px;flex-direction:column}
  .calendar-page .mini-calendar{max-width:none}
  .calendar-page .calendar-filter-grid{grid-template-columns:1fr}
  .calendar-page .calendar-report-actions{grid-column:auto}
}
/* Printing is done from the report's own frame (the Print button in the preview), which carries the
   printable stylesheet. Printing the page around it would only reproduce the application chrome. */
@media print{
  .calendar-page .page-breadcrumb,
  .calendar-page .module-heading,
  .calendar-page .calendar-filter-card,
  .calendar-page .calendar-layout,
  .calendar-page .cal-backdrop{display:none!important}
  .calendar-page .calendar-report-shell{border:0;border-radius:0;box-shadow:none;margin:0;overflow:visible}
}
