:root{--green:#173e35;--green2:#245b4c;--bg:#f3f5f4;--line:#d9e0dd;--text:#18201d;--muted:#68736e;--red:#a83a3a;--redbg:#fff0ef;--good:#26734d;--goodbg:#edf8f1;--weekend:#f1f1f1}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}.topbar{height:58px;background:var(--green);color:white;display:flex;align-items:center;padding:0 22px;gap:28px;position:sticky;top:0;z-index:20}.brand{color:#fff;text-decoration:none;font-weight:800;letter-spacing:.06em}.brand span{font-weight:400;opacity:.78}.topbar nav{display:flex;gap:6px;flex:1}.topbar nav a,.linkbtn{color:#dbe8e3;text-decoration:none;border:0;background:transparent;padding:9px 11px;border-radius:7px;font:inherit;cursor:pointer}.topbar nav a.active,.topbar nav a:hover{background:rgba(255,255,255,.12);color:#fff}.page{padding:22px}.month-head,.settings-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.month-nav{display:flex;align-items:center;gap:14px}.month-nav a{font-size:25px;text-decoration:none;color:var(--green)}h1{font-size:26px;margin:0}h2{font-size:18px;margin:0 0 12px}.muted{color:var(--muted)}button,.primary,.secondary{border:1px solid #c6d0cc;background:white;border-radius:7px;padding:8px 11px;cursor:pointer;font-weight:600}.primary{background:var(--green);color:white;border-color:var(--green)}.secondary{background:#fff;color:var(--green)}input{border:1px solid #c6d0cc;border-radius:6px;padding:8px;background:white}.cards{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;margin-bottom:14px}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:14px 16px;min-height:92px}.card span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.card strong{display:block;font-size:25px;margin:5px 0}.card small{color:var(--muted)}.card.good{background:var(--goodbg);border-color:#c7e7d3}.card.badcard{background:var(--redbg);border-color:#f0cbc8}.target-edit form{display:flex;gap:6px;margin-top:10px}.target-edit input{width:100px}.syncnote{font-size:12px;color:var(--muted);margin:7px 0 12px}.alert{padding:12px;background:#fff7dc;border:1px solid #eadca9;border-radius:8px;margin:12px 0}.alert.bad{background:var(--redbg);border-color:#efc2c0;color:var(--red)}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:10px;max-width:100%}.month-table{border-collapse:separate;border-spacing:0;min-width:1900px;width:100%;font-size:12px}.month-table th,.month-table td{border-right:1px solid #e2e6e4;border-bottom:1px solid #e2e6e4;padding:5px;vertical-align:top;min-width:58px}.month-table thead th{background:#eef3f1;position:sticky;top:0;z-index:4;text-align:center}.month-table .sticky-col{position:sticky;left:0;z-index:5;background:white;min-width:125px;max-width:125px}.month-table thead .sticky-col{z-index:7;background:#e7eeeb}.month-table .day b{display:block;font-size:13px}.month-table .day small{color:var(--muted)}.month-table .off{background:var(--weekend);color:#8a908d}.month-table .workcell{height:78px}.cell-total{font-weight:800;font-size:13px;margin-bottom:3px}.job{margin:2px 0}.job summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:115px;cursor:pointer;color:#385c50}.job.manual summary{color:#8d5c19}.jobdetail{position:absolute;z-index:12;width:260px;background:white;border:1px solid #cfd8d4;border-radius:8px;box-shadow:0 8px 24px #0002;padding:10px;font-size:12px}.jobdetail form{display:flex;gap:5px;margin-top:7px}.jobdetail input{width:95px;padding:5px}.tiny{padding:5px 7px;font-size:11px}.sumcol{min-width:80px!important;background:#f8faf9!important;position:sticky;right:0;z-index:3}.month-table tfoot th,.month-table tfoot td{background:#fafbfa;text-align:right;font-weight:600}.month-table tfoot .sticky-col{text-align:left}.month-table tfoot .actual td{font-weight:800}.pos{color:var(--good)}.neg{color:var(--red)}.issues{margin-top:18px;background:white;border:1px solid var(--line);border-radius:10px;padding:15px}.issue{padding:8px 0;border-top:1px solid #eee}.issue:first-of-type{border-top:0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:16px}.settings-table{width:100%;border-collapse:collapse}.settings-table th,.settings-table td{border-bottom:1px solid #e9ecea;text-align:left;padding:8px}.settings-table small{display:block;color:var(--muted);margin-top:2px}.smallinput{width:58px}.logs{margin-top:16px}.login-card{max-width:390px;margin:10vh auto;background:white;border:1px solid var(--line);border-radius:12px;padding:26px}.stack{display:grid;gap:13px}.stack label{display:grid;gap:5px}@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.page{padding:12px}.topbar{padding:0 10px;gap:12px}.topbar nav a{padding:7px 6px}}

.jobdetail{padding-right:40px}
.jobdetail-close{
  position:absolute;
  top:5px;
  right:6px;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  background:transparent;
  border-radius:50%;
  font-size:22px;
  line-height:28px;
  font-weight:400;
  color:#68736e;
  cursor:pointer;
}
.jobdetail-close:hover{
  background:#eef1ef;
  color:#18201d;
}

.job-summary-text{
  display:inline-flex;
  flex-direction:column;
  vertical-align:top;
  line-height:1.2;
  gap:2px;
}

.job-summary-text strong{
  font-size:14px;
}

.job-summary-text span{
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:110px;
}

.job-summary-text span{
  max-width:none;
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
  font-size:10.5px;
  font-weight:500;
}

/* --- Kuuvaate selgem hierarhia --- */

/* Töötaja kogu päeva summa – kõige tähtsam */
.cell-total{
  font-size:15px;
  line-height:1.2;
  font-weight:800;
  color:#18201d;
  margin:1px 0 5px;
}

/* Üksiku töö summa */
.job-summary-text strong{
  font-size:12px;
  line-height:1.15;
  font-weight:650;
}

/* Projekti/töönumber summa all */
.job-summary-text span{
  font-size:10.5px;
  line-height:1.15;
  font-weight:500;
  opacity:.9;
  margin-top:1px;
}

/* Tööde vahed natuke väiksemad */
.job{
  margin:3px 0;
}

.job summary{
  line-height:1.15;
}

/* --- Hüpikaken kompaktsemaks --- */
.jobdetail{
  width:300px;
  padding:10px 12px;
  font-size:12px;
  line-height:1.35;
}

.jobdetail form{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:7px;
}

.jobdetail input{
  width:100px;
  padding:6px 7px;
  font-size:13px;
}

/* "Salvesta summa" väiksem ja ühe reaga */
.jobdetail form button:not(.tiny){
  padding:6px 9px;
  font-size:12px;
  line-height:1.2;
  white-space:nowrap;
  font-weight:600;
}

/* Tagasi automaatseks */
.jobdetail .tiny{
  padding:5px 8px;
  font-size:11px;
  line-height:1.2;
}


/* Scoro puhkeajad kuuvaates */
.month-table .workcell.timeoff-cell{
  position:relative;
}

.month-table .workcell.timeoff-vacation{
  background:#fff7da;
  box-shadow:inset 3px 0 #d5a336;
}

.month-table .workcell.timeoff-study{
  background:#eaf3ff;
  box-shadow:inset 3px 0 #5b8fc9;
}

.month-table .workcell.timeoff-medical{
  background:#ffeaea;
  box-shadow:inset 3px 0 #cc6666;
}

.month-table .workcell.timeoff-parental{
  background:#f2ebff;
  box-shadow:inset 3px 0 #8a70bd;
}

.month-table .workcell.timeoff-other{
  background:#eef1f0;
  box-shadow:inset 3px 0 #84908b;
}

.month-table .workcell.timeoff-overtime{
  background:#eaf8ef;
  box-shadow:inset 3px 0 #4d9a69;
}

.timeoff-badge{
  display:inline-block;
  margin:0 0 5px 0;
  padding:2px 5px;
  border-radius:4px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(0,0,0,.10);
  font-size:9.5px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.02em;
  white-space:nowrap;
}

.timeoff-cell .cell-total{
  margin-top:1px;
}

.cell-total{
  font-weight:400;
  color:inherit;
}

/* Kuutabeli rahasummad tavalise kirjaga */
.month-table td,
.month-table td strong,
.month-table .cell-total,
.month-table .job-summary-text strong {
  font-weight:400 !important;
}

.timeoff-badge{
  font-weight:400 !important;
}

.topbar .main-nav{
  display:flex;
  gap:6px;
  flex:1;
}

.topbar-right{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:6px;
}

.topbar-right form{
  margin:0;
}

.settings-link{
  color:#dbe8e3;
  text-decoration:none;
  padding:9px 11px;
  border-radius:7px;
}

.settings-link:hover{
  background:rgba(255,255,255,.12);
  color:#fff;
}

/* Päise parem pool */
.topbar-right{
  margin-left:auto !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:8px !important;
  white-space:nowrap !important;
}

.topbar-right a,
.topbar-right a:visited,
.topbar-right a:hover,
.topbar-right a:active{
  color:#ffffff !important;
  text-decoration:none !important;
}

.topbar-right .settings-link{
  display:inline-flex !important;
  align-items:center;
  padding:9px 11px;
  border-radius:7px;
}

.topbar-right .settings-link:hover{
  background:rgba(255,255,255,.12);
}

.topbar-right form{
  display:inline-flex !important;
  margin:0 !important;
}

.topbar-right .linkbtn{
  white-space:nowrap !important;
}

/* Tänane päev kuu tabelis */
.month-table td.today-col{
  box-shadow:
    inset 2px 0 0 #5b8c7b,
    inset -2px 0 0 #5b8c7b;
  background-image:linear-gradient(
    rgba(72,125,105,.07),
    rgba(72,125,105,.07)
  );
}

/* Töötaja päeva kogusumma */
.month-table .cell-total{
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.15 !important;
  margin:1px 0 5px !important;
}

/* Töö detailaken – asukoht määratakse ekraani järgi */
.jobdetail{
  position:fixed !important;
  z-index:1000 !important;
  margin:0 !important;
}

.jobdetail-context{
  padding-right:24px;
  margin-bottom:8px;
}

.jobdetail-project{
  font-size:13px;
  font-weight:700;
  line-height:1.3;
  margin-bottom:3px;
}

.jobdetail-meta{
  font-size:11px;
  color:#68736e;
  margin-bottom:3px;
}

.jobdetail-activity{
  font-size:12px;
  color:#385c50;
}

/* Kuuvaate lahtritele rohkem ruumi */
.month-table th,
.month-table td{
  min-width:72px !important;
  padding:7px 6px !important;
}

.month-table .sticky-col{
  min-width:125px !important;
  max-width:125px !important;
}

.month-table .sumcol{
  min-width:88px !important;
}

/* Kuuvaate päevatulbad veel veidi avaramaks */
.month-table th,
.month-table td{
  min-width:80px !important;
  padding:8px 7px !important;
}

.month-table .sumcol{
  min-width:94px !important;
}
