/* Minimal, mobile-friendly */
:root{--bg:#0b0d10;--card:#12161c;--muted:#8aa0b3;--text:#eef3f8;--line:#243040;--accent:#4da3ff;--danger:#ff5c5c;}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
.bar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);background:#0e1218;position:sticky;top:0;z-index:10}
.title{font-size:18px;font-weight:700}
.sub{font-size:12px;color:var(--muted);margin-top:2px}
.wrap{max-width:1100px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}
h2{margin:0 0 10px 0;font-size:16px}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
input{padding:10px 10px;border-radius:10px;border:1px solid var(--line);background:#0c1016;color:var(--text);outline:none}
select{padding:10px 10px;border-radius:10px;border:1px solid var(--line);background:#0c1016;color:var(--text);outline:none}
input:disabled{opacity:.7}
select:disabled{opacity:.7}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px}
.row{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.row-end{display:flex;align-items:flex-end;gap:10px;justify-content:flex-end;height:100%}
button{border:1px solid var(--line);background:#0c1016;color:var(--text);padding:10px 12px;border-radius:10px;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
button.primary{background:linear-gradient(180deg,#1b76ff,#1357c8);border-color:#2a6fd3}
button.ghost{background:#0c1016}
button.danger{background:#2a1212;border-color:#5a1f1f;color:#ffd1d1}
.hint{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.35}
.status{font-size:12px;color:var(--muted)}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:12px}
table{width:100%;border-collapse:separate;border-spacing:0;min-width:860px}
th,td{border-bottom:1px solid var(--line);padding:8px 8px;font-size:12px;vertical-align:middle}
thead th{position:sticky;top:0;background:#0e1218;z-index:2}
th.stickyLabel, td.stickyLabel{left:0;z-index:3;position:sticky;background:#0e1218}
td.stickyLabel{background:#0c1016}
td input{width:100%;min-width:90px;padding:8px;border-radius:8px}

.totals{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#0c1016;overflow-x:auto}
.totals-row{display:flex;gap:12px;align-items:center;flex-wrap:nowrap}
.totals-label{min-width:90px;font-size:12px;color:var(--muted)}
.totals-days{display:grid;grid-template-columns:repeat(7, minmax(86px, 1fr));gap:8px;flex:1;min-width:640px}
.totals-days input{padding:8px;border-radius:8px;text-align:right;min-width:86px}
.totals-week{display:flex;align-items:center;gap:8px}
.totals-week-label{font-size:12px;color:var(--muted)}
.totals-week input{padding:8px;border-radius:8px;text-align:right;min-width:140px}
@media (max-width:900px){
  .grid3{grid-template-columns:1fr}
  .grid2{grid-template-columns:1fr}
}

@media (max-width:520px){
  /* iPhone: keep day totals aligned and allow horizontal scroll */
  .totals-label{min-width:72px}
  .totals-days{min-width:620px}
}

/* Currency input */
.currency-wrap{position:relative;}
.currency-wrap::before{content:'$';position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none;}
.currency-wrap input{padding-left:22px;text-align:right;}
.number-right{text-align:right;}

/* Section dividers inside the table */
.divider-row td{border-bottom:none;padding:0}
.divider-cell{height:10px;background:linear-gradient(to right, rgba(255,255,255,.10), rgba(255,255,255,0));border-top:1px solid rgba(255,255,255,.10)}

/* Derived/read-only cells */
input.computed{opacity:.85}


/* Week total on its own row */
.totals-row-week{margin-top:10px;}
.totals-row-week .totals-label{opacity:0;}
.totals-row-week .totals-week{margin-left:auto;}


/* Sync (test-entry-log style) */
.metaRow{display:flex;align-items:center;gap:10px;margin-top:10px;color:var(--muted);font-size:13px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#0c1016;color:var(--text);font-size:13px}
.linkbtn{background:transparent;border:0;color:var(--accent);cursor:pointer;padding:6px 6px;border-radius:10px}
.linkbtn:hover{background:rgba(77,163,255,.12)}
/* Dialog */
.dialog{border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);padding:0;max-width:520px;width:92vw}
.dialog::backdrop{background:rgba(0,0,0,.6)}
.dialogForm{padding:14px;display:flex;flex-direction:column;gap:10px}
.dialogForm h3{margin:0;font-size:16px}
.dialogBtns{display:flex;gap:10px;justify-content:flex-end}


/* Header dates above weekday */
#entryTable thead th { vertical-align: bottom; }
#entryTable thead th:not(.stickyLabel){ padding-top: 10px; padding-bottom: 10px; }
#entryTable thead th .th-date{ font-size: 12px; opacity: 0.85; line-height: 1.1; margin-bottom: 2px; }
#entryTable thead th .th-dow{ font-size: 12px; letter-spacing: 0.04em; }
