
.gozy-tc{ display:flex; justify-content:center; padding:24px; }
.gozy-tc__card{ width:min(520px, 100%); background:#f3f3f3; padding:28px 26px; border:1px solid #ddd; }
.gozy-tc__date{ text-align:center; font-size:28px; margin-top:4px; }
.gozy-tc__time{ text-align:center; font-size:28px; margin-top:8px; margin-bottom:18px; }
.gozy-tc__field{ margin:16px 0; }
.gozy-tc__field label{ display:block; text-align:center; font-size:18px; margin-bottom:8px; }
.gozy-tc__field input[type="text"]{ width:100%; padding:10px; font-size:18px; border:1px solid #cfcfcf; }
.gozy-tc__field input[type="file"]{ width:100%; padding:8px; border:1px solid #cfcfcf; background:white; }
.gozy-tc__field textarea{ width:100%; padding:10px; font-size:16px; border:1px solid #cfcfcf; resize:vertical; }
.gozy-tc__hint{ text-align:center; font-size:12px; opacity:.75; margin-top:6px; }
.gozy-tc__buttons{ display:flex; gap:14px; justify-content:space-between; margin-top:18px; }
.gozy-tc__btn{ flex:1; padding:22px 10px; font-size:18px; letter-spacing:.5px; border:0; cursor:pointer; }
.gozy-tc__btn--in{ background:#58b89b; }
.gozy-tc__btn--out{ background:#4f97cc; }
.gozy-tc__btn--last{ background:#e0e0e0; }
.gozy-tc__status{ margin-top:16px; text-align:center; font-size:14px; min-height:20px; }
.gozy-tc__status--ok{ color:#1f7a49; }
.gozy-tc__status--err{ color:#b00020; }
.gozy-tc__last{ margin-top:14px; text-align:center; font-size:14px; }


/* Modal + Calendar */
.gozy-tc__modal{ display:none; }
.gozy-tc__modal--open{ display:block; position:fixed; inset:0; z-index:9999; }
.gozy-tc__modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); }
.gozy-tc__modal-card{ position:relative; width:min(860px, 92vw); max-height:85vh; overflow:auto; margin:6vh auto 0; background:#fff; border-radius:10px; padding:14px 14px 18px; box-shadow:0 10px 30px rgba(0,0,0,.25); }
.gozy-tc__modal-head{ display:flex; align-items:center; justify-content:space-between; padding:6px 6px 10px; border-bottom:1px solid #eee; }
.gozy-tc__modal-title{ font-size:18px; font-weight:600; }
.gozy-tc__modal-x{ border:0; background:transparent; font-size:24px; line-height:24px; cursor:pointer; }
.gozy-tc__modal-controls{ display:flex; align-items:center; justify-content:center; gap:12px; padding:10px 0; }
.gozy-tc__mini{ padding:8px 12px; border:1px solid #ddd; background:#f6f6f6; cursor:pointer; }
.gozy-tc__weeklabel{ font-weight:600; }
.gozy-tc__calendar{ padding:8px 2px 2px; }
.gozy-tc__calgrid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:10px; }
.gozy-tc__calday{ border:1px solid #e5e5e5; background:#fafafa; padding:10px; min-height:160px; }
.gozy-tc__caldayhead{ font-weight:700; margin-bottom:6px; }
.gozy-tc__caltotal{ font-size:12px; opacity:.85; margin-bottom:8px; }
.gozy-tc__shift{ background:#fff; border:1px solid #e6e6e6; padding:8px; margin-bottom:8px; font-size:12px; }
.gozy-tc__shift--empty{ opacity:.7; }
.gozy-tc__loading, .gozy-tc__error{ text-align:center; padding:18px; }
.gozy-tc__btn--cal{ background:#d9d9d9; }
.gozy-tc__modal-foot{ display:flex; justify-content:center; padding-top:6px; }
@media (max-width: 900px){
  .gozy-tc__calgrid{ grid-template-columns:1fr; }
}

/* Today's hours banner */
.gozy-tc__today{
  margin-top:14px;
  padding:10px 16px;
  background:#e8f5e9;
  border:1px solid #a5d6a7;
  text-align:center;
  font-size:15px;
  border-radius:3px;
}
