:root {
  --bg: #edf8f1;
  --card: rgba(255,255,255,.94);
  --text: #10251b;
  --muted: #61766b;
  --primary: #15a36d;
  --primary-dark: #0a6d48;
  --soft: #dff8eb;
  --border: #d4e8dc;
  --success: #079455;
  --warning: #d9950a;
  --danger: #dc2626;
  --shadow: 0 18px 45px rgba(7,62,39,.10);
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at top left,rgba(155,225,93,.22),transparent 35%),radial-gradient(circle at bottom right,rgba(21,163,109,.14),transparent 38%),var(--bg);color:var(--text);display:flex;min-height:100vh}
.hidden{display:none!important}
.sidebar{width:280px;background:linear-gradient(180deg,#073e27,#0b5135);color:white;padding:22px;display:flex;flex-direction:column;position:fixed;left:16px;top:16px;bottom:16px;border-radius:26px;box-shadow:0 25px 60px rgba(7,62,39,.26);overflow:auto}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}
.brand-icon{width:52px;height:52px;border-radius:18px;background:linear-gradient(135deg,#d9ff99,#13c784);display:grid;place-items:center;font-size:28px;color:#063a25}
.brand h1{margin:0;font-size:23px}.brand p{margin:5px 0 0;color:#bee8cf;font-size:13px}
nav{display:grid;gap:8px}.nav-btn{border:0;background:transparent;color:#ddf6e7;text-align:left;padding:12px 14px;border-radius:15px;cursor:pointer;font-size:15px}
.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.14);color:#fff}
.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding-top:16px;color:#bce9cc;font-size:13px}
.logout{display:inline-flex;margin-top:10px;color:#063a25;background:#d9ff99;text-decoration:none;font-weight:800;padding:10px 12px;border-radius:12px}
.main{margin-left:312px;width:calc(100% - 312px);padding:24px 24px 24px 10px}
.full-main{margin-left:0;width:100%;padding:24px}
.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px;padding:12px 4px}
.topbar h2{margin:0;font-size:32px;letter-spacing:-.04em}.topbar p{margin:5px 0 0;color:var(--muted)}
.top-actions{display:flex;gap:10px;flex-wrap:wrap}.page{display:none}.page.active{display:grid;gap:20px}
.chooser-hero,.hero{background:linear-gradient(135deg,#073e27,#0fa66b);color:#fff;border-radius:30px;padding:34px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.chooser-hero{display:block}.chooser-hero h3,.hero h3{margin:14px 0 8px;font-size:38px;letter-spacing:-.05em}.chooser-hero p,.hero p{margin:0;color:#ddf6e7;max-width:760px}
.apartment-hero{background:linear-gradient(135deg,#064e3b,#16a34a)}
.pill{display:inline-flex;background:rgba(217,255,153,.18);border:1px solid rgba(217,255,153,.35);color:#edffd2;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800}
.hero-number{min-width:220px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:22px;padding:18px;display:grid;gap:5px}.hero-number strong{font-size:26px}.hero-number span,.hero-number small{color:#ddf6e7}
.module-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:18px}.module-card{min-height:230px;text-align:left;display:grid;align-content:start;gap:12px;border-radius:28px;padding:28px;border:1px solid var(--border);background:rgba(255,255,255,.94);color:var(--text);box-shadow:var(--shadow);cursor:pointer}
.module-card:hover{transform:translateY(-3px);background:white}.module-card strong{font-size:28px;letter-spacing:-.04em}.module-card small{color:var(--muted);font-size:15px;line-height:1.45}.module-icon{width:68px;height:68px;display:grid;place-items:center;border-radius:24px;background:linear-gradient(135deg,#d9ff99,#13c784);font-size:34px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:18px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.card h3{margin:0;font-size:18px}.stat{display:grid;gap:10px}.stat span{color:var(--muted);font-size:14px}.stat strong{font-size:26px;letter-spacing:-.04em}.positive strong{color:var(--success)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;align-items:end}.form-grid.two{grid-template-columns:1fr 1fr}
label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:700}
input,select{border:1px solid var(--border);background:#fff;border-radius:14px;padding:12px 13px;color:var(--text);font-size:14px;outline:none}
input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(21,163,109,.12)}
button,.file-label{border:0;background:linear-gradient(135deg,var(--primary),#0cc37d);color:#fff;padding:12px 16px;border-radius:14px;cursor:pointer;font-weight:800;font-size:14px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 22px rgba(21,163,109,.18)}
button:hover,.file-label:hover{background:linear-gradient(135deg,var(--primary-dark),var(--primary))}
.secondary,.file-label{background:var(--soft)!important;color:var(--primary-dark)!important;box-shadow:none!important}.full{width:100%}.file-label input{display:none}.search{max-width:300px}
.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:780px}th,td{border-bottom:1px solid var(--border);padding:12px 10px;text-align:left;font-size:14px}th{color:var(--muted);font-size:13px;background:#f5fbf7}.amount{font-weight:800}
.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.green{background:#dcfce7;color:#166534}.red{background:#fee2e2;color:#991b1b}.yellow{background:#fef3c7;color:#92400e}
.action-btn{padding:7px 10px;border-radius:10px;font-size:12px;background:#edf7f1;color:#1f6043;box-shadow:none;margin:2px}.delete-btn{background:#fee2e2;color:#991b1b}.report-list,.tips{display:grid;gap:10px}.report-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px;border:1px solid var(--border);border-radius:14px;background:#fbfffc}.tip{border-left:4px solid var(--primary);background:#f7fff9;padding:12px;border-radius:10px;color:#344c3f}
.occupancy-box{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}.occupancy-circle{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at center,#fff 0 56%,transparent 57%),conic-gradient(#15a36d var(--occ,0%),#dff8eb 0);border:1px solid var(--border)}.occupancy-circle span{font-size:24px;font-weight:900;color:var(--primary-dark)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.cal-day{min-height:92px;border:1px solid var(--border);border-radius:14px;background:#fff;padding:10px}.cal-day.busy{background:#ecfdf3;border-color:#86efac}.cal-day strong{display:block}.cal-day small{color:var(--muted)}
.toast{position:fixed;right:22px;bottom:22px;background:#063d27;color:#fff;padding:13px 16px;border-radius:14px;opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s;box-shadow:var(--shadow);z-index:99}.toast.show{opacity:1;transform:translateY(0)}
.print-title{display:none}
.login-body{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(155,225,93,.32),transparent 28%),linear-gradient(135deg,#eef8f1,#dbf7e6)}.login-card{width:min(420px,calc(100% - 28px));background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.75);border-radius:32px;padding:34px;box-shadow:0 30px 90px rgba(7,62,39,.18)}.login-logo{width:62px;height:62px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#d9ff99,#13c784);font-size:32px;margin-bottom:18px}.login-card h1{margin:0;font-size:30px}.login-card p{color:var(--muted)}.login-form{display:grid;gap:14px}.login-form button{width:100%}
@media(max-width:1050px){body{display:block}.sidebar{position:relative;width:auto;left:auto;top:auto;bottom:auto;margin:12px}.main,.full-main{margin-left:0;width:100%;padding:14px}.cards,.grid-2,.form-grid,.module-grid{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.cards,.grid-2,.form-grid,.form-grid.two,.module-grid,.hero,.occupancy-box{grid-template-columns:1fr}.chooser-hero h3,.hero h3{font-size:25px}.stat strong{font-size:22px}.calendar-grid{grid-template-columns:1fr}}
@media print{body{background:#fff!important;display:block}.sidebar,.topbar,.no-print,button,.file-label{display:none!important}.main,.full-main{margin:0;width:100%;padding:0}.page{display:block!important}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.print-title{display:block;margin-bottom:18px}}


/* v6 - jasnije boje u kalendaru za stan na dan */
.cal-day {
  position: relative;
  transition: 0.15s ease;
}

.cal-day.reserved-unpaid {
  background: #fff7d6;
  border: 2px solid #facc15;
  box-shadow: 0 10px 22px rgba(250, 204, 21, 0.18);
}

.cal-day.reserved-paid {
  background: #dcfce7;
  border: 2px solid #22c55e;
  box-shadow: 0 10px 22px rgba(34, 197, 94, 0.16);
}

.cal-day.cleaning {
  background: #fee2e2;
  border: 3px solid #dc2626;
  box-shadow: 0 12px 26px rgba(220, 38, 38, 0.22);
  animation: cleaningPulse 1.35s ease-in-out infinite;
}

.cal-day.cleaning strong {
  color: #991b1b;
}

.cal-reservation,
.cal-cleaning {
  display: block;
  margin-top: 7px;
  padding: 6px 7px;
  border-radius: 9px;
  font-size: 11px;
  line-height: 1.25;
}

.cal-reservation.green {
  background: #bbf7d0;
  color: #166534;
  font-weight: 800;
}

.cal-reservation.yellow {
  background: #fef3c7;
  color: #92400e;
  font-weight: 800;
}

.cal-cleaning {
  background: #dc2626;
  color: #fff;
  font-weight: 900;
  letter-spacing: 0.02em;
}

@keyframes cleaningPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.025); }
}

@media print {
  .cal-day.cleaning {
    animation: none;
  }
}


/* v7 - blaža crvena, manja oznaka čišćenja i hover podaci gosta */
.cal-day.cleaning {
  background: #ffe8e8 !important;
  border: 2px solid #f87171 !important;
  box-shadow: 0 8px 18px rgba(248, 113, 113, 0.14) !important;
  animation: none !important;
}

.cal-day.cleaning strong {
  color: #7f1d1d !important;
}

.cal-cleaning {
  display: inline-block !important;
  margin-top: 5px !important;
  padding: 3px 6px !important;
  border-radius: 7px !important;
  background: #fecaca !important;
  color: #991b1b !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.1 !important;
}

.cal-reservation {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cal-day[data-tooltip]:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 8px;
  top: calc(100% + 8px);
  z-index: 100;
  min-width: 220px;
  max-width: 280px;
  padding: 11px 12px;
  border-radius: 12px;
  background: #073e27;
  color: #ffffff;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 700;
  white-space: pre-line;
  box-shadow: 0 16px 35px rgba(7, 62, 39, 0.25);
  pointer-events: none;
}

.cal-day[data-tooltip=""]:hover::after {
  display: none;
}

.cal-day[data-tooltip]:hover::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 100%;
  z-index: 101;
  border: 8px solid transparent;
  border-bottom-color: #073e27;
  pointer-events: none;
}

.cal-day[data-tooltip=""]:hover::before {
  display: none;
}


/* v8 - čist hover: samo ime i broj telefona */
.cal-day[data-tooltip]:hover::after {
  min-width: 170px !important;
  max-width: 230px !important;
  padding: 9px 11px !important;
  border-radius: 10px !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  white-space: pre-line !important;
}

.cal-day[data-tooltip]:hover::first-line {
  font-weight: 900;
}


/* v9 - full responsive/mobile optimizacija */
html {
  -webkit-text-size-adjust: 100%;
}

button,
input,
select,
.file-label {
  min-height: 44px;
}

input,
select {
  font-size: 16px;
}

.table-wrap {
  -webkit-overflow-scrolling: touch;
  border-radius: 16px;
}

.table-wrap::after {
  content: "";
  display: block;
  height: 1px;
}

/* Tap tooltip on mobile/tablet */
.cal-day.show-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 8px;
  top: calc(100% + 8px);
  z-index: 100;
  min-width: 170px;
  max-width: 230px;
  padding: 9px 11px;
  border-radius: 10px;
  background: #073e27;
  color: #ffffff;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 700;
  white-space: pre-line;
  box-shadow: 0 16px 35px rgba(7, 62, 39, 0.25);
  pointer-events: none;
}

.cal-day.show-tooltip::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 100%;
  z-index: 101;
  border: 8px solid transparent;
  border-bottom-color: #073e27;
  pointer-events: none;
}

.cal-day[data-tooltip=""].show-tooltip::after,
.cal-day[data-tooltip=""].show-tooltip::before {
  display: none;
}

/* Tablet */
@media (max-width: 1050px) {
  body {
    display: block;
  }

  .sidebar {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    margin: 0;
    border-radius: 0 0 24px 24px;
    padding: 14px;
    z-index: 50;
    max-height: none;
  }

  .brand {
    margin-bottom: 12px;
  }

  .brand-icon {
    width: 44px;
    height: 44px;
    border-radius: 15px;
    font-size: 24px;
  }

  .brand h1 {
    font-size: 20px;
  }

  .module-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .nav-btn {
    text-align: center;
    padding: 11px 9px;
    font-size: 14px;
  }

  .sidebar-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    align-items: center;
    margin-top: 12px;
    padding-top: 12px;
  }

  .sidebar-footer p {
    display: none;
  }

  .logout {
    margin-top: 0;
    justify-content: center;
  }

  .main,
  .full-main {
    margin-left: 0;
    width: 100%;
    padding: 14px;
  }

  .topbar {
    gap: 12px;
    margin-bottom: 14px;
  }

  .top-actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .top-actions button,
  .top-actions .file-label {
    width: 100%;
  }

  .cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid-2,
  .module-grid {
    grid-template-columns: 1fr;
  }

  .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero {
    grid-template-columns: 1fr;
  }

  .calendar-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .cal-day {
    min-height: 105px;
  }
}

/* Phone */
@media (max-width: 650px) {
  body {
    background: #edf8f1;
  }

  .sidebar {
    border-radius: 0 0 20px 20px;
    padding: 12px;
  }

  .brand {
    gap: 10px;
  }

  .brand h1 {
    font-size: 18px;
  }

  .brand p {
    font-size: 12px;
  }

  .module-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px;
  }

  .nav-btn {
    padding: 10px 7px;
    font-size: 13px;
    border-radius: 12px;
  }

  .sidebar-footer {
    grid-template-columns: 1fr 1fr;
  }

  .main,
  .full-main {
    padding: 10px;
  }

  .topbar h2 {
    font-size: 24px;
  }

  .topbar p {
    font-size: 13px;
  }

  .top-actions {
    grid-template-columns: 1fr;
  }

  .chooser-hero,
  .hero {
    padding: 20px;
    border-radius: 22px;
  }

  .chooser-hero h3,
  .hero h3 {
    font-size: 26px;
    line-height: 1.05;
  }

  .hero-number {
    min-width: 0;
    width: 100%;
  }

  .module-card {
    min-height: auto;
    padding: 20px;
    border-radius: 22px;
  }

  .module-card strong {
    font-size: 23px;
  }

  .module-icon {
    width: 56px;
    height: 56px;
    border-radius: 19px;
    font-size: 29px;
  }

  .cards {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px;
  }

  .card {
    padding: 14px;
    border-radius: 18px;
  }

  .stat {
    gap: 7px;
  }

  .stat span {
    font-size: 12px;
  }

  .stat strong {
    font-size: 18px;
  }

  .grid-2,
  .form-grid,
  .form-grid.two,
  .module-grid,
  .occupancy-box {
    grid-template-columns: 1fr !important;
  }

  .form {
    gap: 12px;
  }

  label {
    font-size: 12px;
  }

  input,
  select,
  button,
  .file-label {
    width: 100%;
    font-size: 16px;
    border-radius: 13px;
  }

  .card-head {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .search {
    max-width: none;
    width: 100%;
  }

  table {
    min-width: 720px;
  }

  th,
  td {
    padding: 10px 8px;
    font-size: 13px;
  }

  .calendar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .cal-day {
    min-height: 118px;
    padding: 9px;
  }

  .cal-day strong {
    font-size: 16px;
  }

  .cal-reservation {
    font-size: 11px;
    padding: 5px 6px;
  }

  .cal-cleaning {
    font-size: 9px !important;
    padding: 3px 5px !important;
  }

  .cal-day[data-tooltip]:hover::after,
  .cal-day.show-tooltip::after {
    left: 0;
    right: auto;
    top: calc(100% + 7px);
    min-width: 165px !important;
    max-width: 210px !important;
    font-size: 12px !important;
  }

  .occupancy-circle {
    width: 105px;
    height: 105px;
  }

  .toast {
    left: 12px;
    right: 12px;
    bottom: 12px;
    text-align: center;
  }
}

/* Very small phones */
@media (max-width: 420px) {
  .cards {
    grid-template-columns: 1fr !important;
  }

  .module-nav {
    grid-template-columns: 1fr 1fr !important;
  }

  .nav-btn {
    font-size: 12px;
  }

  .calendar-grid {
    grid-template-columns: 1fr !important;
  }

  .cal-day {
    min-height: 90px;
  }
}


/* v10 - hard fix za kartice koje izlaze van širine ekrana na telefonu */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden !important;
}

body,
.main,
.full-main,
.page,
.card,
.hero,
.chooser-hero,
.module-card,
.cards,
.grid-2,
.form,
.form-grid,
.module-grid,
.topbar,
.top-actions,
.sidebar {
  max-width: 100%;
}

.card,
.hero,
.chooser-hero,
.module-card,
.sidebar,
.main,
.full-main,
.table-wrap {
  min-width: 0;
}

.cards,
.grid-2,
.form-grid,
.module-grid {
  min-width: 0;
}

.card *,
.hero *,
.chooser-hero *,
.module-card * {
  min-width: 0;
}

.table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: visible;
}

table {
  max-width: none;
}

/* Telefon - sve kartice striktno jedna kolona */
@media (max-width: 650px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .main,
  .full-main {
    width: 100% !important;
    max-width: 100vw !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    overflow-x: hidden !important;
  }

  .page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .cards,
  .grid-2,
  .form-grid,
  .form-grid.two,
  .module-grid,
  .top-actions,
  .occupancy-box {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .card,
  .hero,
  .chooser-hero,
  .module-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden;
  }

  .card-head {
    width: 100%;
    max-width: 100%;
  }

  .sidebar {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .module-nav {
    width: 100%;
    max-width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .nav-btn {
    min-width: 0 !important;
    width: 100%;
    white-space: normal;
    word-break: break-word;
  }

  input,
  select,
  button,
  .file-label {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .table-wrap {
    margin-left: 0;
    margin-right: 0;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    border: 1px solid var(--border);
    background: #fff;
  }

  .table-wrap table {
    min-width: 680px;
  }

  .calendar-grid {
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .cal-day {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
  }

  .cal-reservation {
    max-width: 100%;
  }

  .hero-number {
    width: 100% !important;
    max-width: 100%;
    min-width: 0 !important;
  }
}

/* Mali telefoni - kalendar i kartice skroz jedna kolona */
@media (max-width: 430px) {
  .module-nav,
  .calendar-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .cards {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .table-wrap table {
    min-width: 620px;
  }

  .main,
  .full-main {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}


/* v11 - kalendar sa mesecima, 7 dana u redu i copy telefona na tap */
.calendar-head {
  align-items: center;
}

.calendar-controls {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  min-width: min(480px, 100%);
}

.calendar-controls strong {
  text-align: center;
  color: var(--primary-dark);
  text-transform: capitalize;
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  color: var(--muted);
  font-size: 13px;
  margin: -4px 0 12px;
}

.calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.legend-dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  display: inline-block;
}

.yellow-dot { background: #facc15; }
.green-dot { background: #22c55e; }
.red-dot { background: #f87171; }

.calendar-help {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 13px;
}

.calendar-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  gap: 8px;
}

.cal-weekday {
  text-align: center;
  font-weight: 900;
  color: var(--primary-dark);
  background: #ecfdf3;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 9px 4px;
  font-size: 13px;
}

.cal-empty {
  background: rgba(255,255,255,0.35) !important;
  border: 1px dashed #d4e8dc !important;
  box-shadow: none !important;
  pointer-events: none;
}

.cal-day[data-tooltip]:not([data-tooltip=""]) {
  cursor: pointer;
}

@media (max-width: 650px) {
  .calendar-head {
    align-items: stretch;
  }

  .calendar-controls {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .calendar-controls strong {
    order: -1;
    font-size: 18px;
    padding: 4px 0;
  }

  .calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 4px;
  }

  .cal-weekday {
    font-size: 10px;
    padding: 6px 1px;
    border-radius: 8px;
  }

  .cal-day {
    min-height: 72px !important;
    padding: 5px 3px !important;
    border-radius: 10px !important;
  }

  .cal-day strong {
    font-size: 12px !important;
    margin-bottom: 2px;
  }

  .cal-reservation {
    margin-top: 3px !important;
    padding: 3px 3px !important;
    border-radius: 6px !important;
    font-size: 8.5px !important;
    line-height: 1.1 !important;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .cal-cleaning {
    margin-top: 3px !important;
    padding: 2px 3px !important;
    border-radius: 5px !important;
    font-size: 7.5px !important;
    line-height: 1.05 !important;
  }

  .calendar-legend {
    font-size: 11px;
    gap: 7px 10px;
  }

  .calendar-help {
    font-size: 12px;
  }

  .cal-day[data-tooltip]:hover::after,
  .cal-day.show-tooltip::after {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: auto !important;
    bottom: 18px !important;
    min-width: auto !important;
    max-width: none !important;
    width: auto !important;
    text-align: center;
    z-index: 500;
  }

  .cal-day[data-tooltip]:hover::before,
  .cal-day.show-tooltip::before {
    display: none !important;
  }
}

/* v11 override: čak i na malim telefonima kalendar ostaje 7 dana u jednom redu */
@media (max-width: 430px) {
  .calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 3px;
  }

  .cal-day {
    min-height: 64px !important;
    padding: 4px 2px !important;
  }

  .cal-weekday {
    font-size: 9px;
    padding: 5px 0;
  }

  .cal-reservation {
    font-size: 7.5px !important;
  }

  .cal-cleaning {
    font-size: 7px !important;
  }
}


/* v12 - fix za Izveštaji stan na dan na telefonu */
#aptReports,
#aptReportPrintArea,
#aptReportPrintArea .cards,
#aptReportPrintArea .grid-2,
#aptReportPrintArea .card,
#aptReportPrintArea .stat {
  max-width: 100%;
  min-width: 0;
}

#aptReportPrintArea {
  width: 100%;
  overflow-x: hidden;
}

#aptReportPrintArea .cards {
  width: 100%;
  display: grid;
}

#aptReportPrintArea .stat strong {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 650px) {
  #aptReports {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  #aptReportPrintArea {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  #aptReportPrintArea .cards,
  #aptReportPrintArea .grid-2 {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 10px !important;
  }

  #aptReportPrintArea .card,
  #aptReportPrintArea .stat {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  #aptReportPrintArea .stat {
    padding: 13px !important;
  }

  #aptReportPrintArea .stat span {
    font-size: 12px !important;
  }

  #aptReportPrintArea .stat strong {
    display: block;
    max-width: 100%;
    font-size: 20px !important;
    line-height: 1.15;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  #aptUsefulStats,
  #aptPlatformReport,
  #aptReportTable {
    max-width: 100%;
    min-width: 0;
  }

  #aptReportPrintArea .report-row,
  #aptReportPrintArea .tip {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  #aptReportPrintArea .table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
  }

  #aptReportPrintArea table {
    min-width: 620px !important;
  }
}

@media (max-width: 430px) {
  #aptReportPrintArea .stat strong {
    font-size: 18px !important;
  }

  #aptReportPrintArea table {
    min-width: 560px !important;
  }
}


/* Namecheap final - link button in top bar */
.link-btn {
  text-decoration: none;
  min-height: 44px;
}
