﻿:root{
  --bg:#eef1f5;--surface:#fff;--s2:#f5f7fa;--s3:#eaecf0;
  --border:#dde1e7;--b2:#c8cdd6;
  --accent:#1a56a0;--ah:#134588;--al:#e8f0fc;
  --text:#1a2130;--t2:#4a5568;--muted:#8a95a3;
  --red:#c53030;--rl:#fff0f0;
  --green:#276749;--gl:#f0faf4;
  --amber:#b45309;--aml:#fffbeb;--amb:#f59e0b;
  --ss:0 1px 3px rgba(0,0,0,.07);
  --sh:0 4px 12px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.04);
  --sl:0 12px 32px rgba(0,0,0,.13),0 4px 8px rgba(0,0,0,.06);
  --r:8px;--rs:5px;
}
[data-theme="dark"]{
  --bg:#0f1219;--surface:#1a1f2e;--s2:#232838;--s3:#2a3042;
  --border:#2e3446;--b2:#3a4258;
  --accent:#4d8fd6;--ah:#6ba3e0;--al:#1a2a42;
  --text:#e2e8f0;--t2:#a0aec0;--muted:#64748b;
  --red:#f56565;--rl:#2d1b1b;
  --green:#48bb78;--gl:#1a2e22;
  --amber:#ed8936;--aml:#2e2210;--amb:#f6ad55;
  --ss:0 1px 3px rgba(0,0,0,.25);
  --sh:0 4px 12px rgba(0,0,0,.35),0 2px 4px rgba(0,0,0,.2);
  --sl:0 12px 32px rgba(0,0,0,.45),0 4px 8px rgba(0,0,0,.25);
}
[data-theme="dark"] .field input,[data-theme="dark"] .field textarea,
[data-theme="dark"] .field input:focus,[data-theme="dark"] .field textarea:focus,
[data-theme="dark"] .mf input,[data-theme="dark"] .mf textarea,
[data-theme="dark"] .mf input:focus,[data-theme="dark"] .mf textarea:focus,
[data-theme="dark"] .search-inp,[data-theme="dark"] .search-inp:focus,
[data-theme="dark"] .setting-row input,[data-theme="dark"] .setting-row input:focus,
[data-theme="dark"] .job-row input,[data-theme="dark"] .job-row input:focus,
[data-theme="dark"] .ej-row input,[data-theme="dark"] .ej-row input:focus,
[data-theme="dark"] .add-pr input,[data-theme="dark"] .add-pr input:focus,
[data-theme="dark"] .pi-hrs,[data-theme="dark"] .pi-hrs:focus,
[data-theme="dark"] .auth-field input,[data-theme="dark"] .auth-field input:focus{
  background:var(--s2);color:var(--text);border-color:var(--border);
}
[data-theme="dark"] .field input:focus,[data-theme="dark"] .field textarea:focus,
[data-theme="dark"] .mf input:focus,[data-theme="dark"] .mf textarea:focus,
[data-theme="dark"] .search-inp:focus,[data-theme="dark"] .setting-row input:focus,
[data-theme="dark"] .job-row input:focus,[data-theme="dark"] .ej-row input:focus,
[data-theme="dark"] .add-pr input:focus,[data-theme="dark"] .pi-hrs:focus,
[data-theme="dark"] .auth-field input:focus{border-color:var(--accent);background:var(--s3)}
[data-theme="dark"] .ac-dd{background:var(--surface);border-color:var(--accent)}
[data-theme="dark"] .ac-item{color:var(--text);border-color:var(--border)}
[data-theme="dark"] .fbtn{background:var(--s2);color:var(--t2);border-color:var(--border)}
[data-theme="dark"] .fbtn:hover{background:var(--s3)}
[data-theme="dark"] .cal-popup{background:var(--surface);border-color:var(--accent)}
[data-theme="dark"] .pin-digit{background:var(--s2);border-color:var(--border);color:var(--text)}
[data-theme="dark"] .pin-digit:focus{background:var(--s3);border-color:var(--accent)}
[data-theme="dark"] .mo{background:rgba(0,0,0,.6)}
[data-theme="dark"] .ji-h{background:var(--al);color:var(--accent)}
[data-theme="dark"] .pi-lt{background:var(--s2);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .date-btn{background:var(--s2);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .btn-aj{background:var(--s2);border-color:var(--accent);color:var(--accent)}
[data-theme="dark"] .btn-c{background:var(--s3);border-color:var(--border);color:var(--t2)}
[data-theme="dark"] .btn-exp{background:var(--s2);border-color:var(--accent);color:var(--accent)}
[data-theme="dark"] .btn-graph{background:var(--s2);border-color:var(--border);color:var(--t2)}
[data-theme="dark"] .reauth-overlay{background:rgba(15,18,25,.97)}
[data-theme="dark"] .todo-add-grid .mf input,
[data-theme="dark"] .todo-add-grid .mf textarea,
[data-theme="dark"] .todo-add-grid .mf select{background:var(--s2);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .ji-h.editing{background:var(--s3);color:var(--accent)}
[data-theme="dark"] .ji-d-inp{background:var(--s2);color:var(--text)}
[data-theme="dark"] .stats-fbtn{background:var(--s2);color:var(--t2);border-color:var(--border)}
[data-theme="dark"] .stats-fbtn:hover{background:var(--s3)}
[data-theme="dark"] .btn-dup-new{background:var(--s2);color:var(--t2)}
[data-theme="dark"] .btn-tstatus{background:var(--s2);color:var(--t2);border-color:var(--border)}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:'Barlow',sans-serif;min-height:100vh;font-size:15px;transition:background .3s,color .3s}

/* ── PIN SCREEN ── */
.pin-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}
.pin-card{background:var(--surface);border-radius:var(--r);padding:44px 48px;box-shadow:var(--sl);width:340px;text-align:center}
.pin-logo{width:52px;height:52px;background:var(--accent);border-radius:12px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center}
.pin-logo svg{width:28px;height:28px;fill:#fff}
.pin-card h2{font-family:'Barlow Condensed',sans-serif;font-size:1.7rem;font-weight:700;letter-spacing:.5px;margin-bottom:6px}
.pin-card p{font-size:.86rem;color:var(--muted);margin-bottom:24px}
.pin-error{background:var(--rl);color:var(--red);border:1px solid #f9a8a8;border-radius:var(--rs);padding:8px 14px;font-size:.82rem;margin-bottom:16px;font-weight:500}
.pin-inputs{display:flex;gap:10px;justify-content:center;margin-bottom:22px}
.pin-digit{width:52px;height:58px;border:2px solid var(--border);border-radius:var(--rs);background:var(--s2);text-align:center;font-family:'JetBrains Mono',monospace;font-size:1.6rem;font-weight:700;color:var(--text);outline:none;transition:border-color .15s;-webkit-text-security:disc}
.pin-digit:focus{border-color:var(--accent);background:#fff}
.btn-pin{background:var(--accent);color:#fff;border:none;width:100%;font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:700;letter-spacing:.5px;padding:13px;border-radius:var(--rs);cursor:pointer;transition:background .15s}
.btn-pin:hover{background:var(--ah)}

/* ── SAVE BAR ── */
.save-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:4px 24px;display:flex;align-items:center;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:.67rem;color:var(--muted)}
.maint-banner{background:#7c3a00;color:#ffe5b4;font-family:'Barlow',sans-serif;font-size:.82rem;font-weight:500;text-align:center;padding:7px 20px;letter-spacing:.01em}
.fs-dot{width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0;display:inline-block;margin-right:6px}
.fs-clock{color:var(--muted);margin-left:8px;opacity:.65;letter-spacing:.03em;flex-shrink:0}
.save-bar.ok .fs-dot{background:var(--green)}
.save-bar.ok .fs-text{color:var(--green)}
.save-bar.saving .fs-dot{background:var(--amber);animation:pulse .8s infinite}
.save-bar.saving .fs-text{color:var(--amber)}
.save-bar.err .fs-dot{background:var(--red)}
.save-bar.err .fs-text{color:var(--red)}
.save-bar.loading .fs-dot{background:var(--muted)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.file-actions{display:flex;gap:8px;align-items:center}
.btn-fbar{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:.63rem;padding:2px 8px;border-radius:3px;cursor:pointer;font-family:'JetBrains Mono',monospace;transition:all .12s;text-decoration:none;display:inline-block}
.btn-fbar:hover{background:var(--s3);border-color:var(--b2);color:var(--t2)}
.btn-fbar-help{margin-left:12px;border-color:var(--accent);color:var(--accent)}
.btn-fbar-help:hover{background:var(--accent);color:#fff}

/* ── LOADING OVERLAY ── */
.load-overlay{position:fixed;inset:0;background:var(--bg);z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--muted)}
.load-overlay.hidden{display:none}
.load-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── HEADER ── */
header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:52px;box-shadow:var(--ss);position:sticky;top:0;z-index:200}
.hl{display:flex;align-items:center;gap:10px;justify-content:center}
.logo{width:30px;height:30px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo img{width:30px;height:30px;max-width:30px;max-height:30px;object-fit:contain;display:block;flex-shrink:0}
.app-title{font-family:'Barlow Condensed',sans-serif;font-size:1.15rem;font-weight:700;letter-spacing:.5px}
.hr2{display:flex;align-items:center;gap:7px;justify-content:flex-end}
.hpill{position:relative;display:flex;align-items:center;gap:5px;background:var(--s3);border:1px solid var(--border);border-radius:20px;padding:4px 12px;cursor:pointer;transition:all .15s;user-select:none;font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:600;color:var(--t2)}
.hpill:hover{background:var(--al);border-color:var(--accent);color:var(--accent)}
.hpill.accent-pill{background:var(--al);border-color:var(--accent);color:var(--accent)}
.phrs{display:none;background:var(--accent);color:#fff;border-radius:10px;padding:1px 6px;font-size:.65rem;font-weight:700}
.hpill:hover .phrs,.hpill.accent-pill:hover .phrs{display:inline-block}
.hpill.goal-met{background:var(--gl)!important;border-color:var(--green)!important;color:var(--green)!important}
.hpill.goal-met .phrs{background:var(--green)!important}
.hpill.goal-near{background:var(--aml)!important;border-color:var(--amber)!important;color:var(--amber)!important}
.hpill.goal-near .phrs{background:var(--amber)!important}
/* merged date+pp pill */
.date-pill-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.dp-pp{display:none;font-size:.6rem;color:var(--accent);opacity:.85;margin-top:1px;font-family:'JetBrains Mono',monospace;font-weight:600;white-space:nowrap;cursor:pointer}
.dp-pp:hover{opacity:1;text-decoration:underline}
.hpill:hover .dp-pp{display:block}
.btn-icon{background:transparent;border:1px solid var(--border);color:var(--muted);width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.btn-icon:hover{background:var(--s3);border-color:var(--b2);color:var(--t2)}
.btn-icon svg{width:14px;height:14px}

/* ── MAIN ── */
main{max-width:1100px;margin:0 auto;padding:20px 22px;display:flex;flex-direction:column;gap:16px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--ss)}
.add-section{padding:18px 20px}
@keyframes promote-pulse{0%{box-shadow:var(--ss);background-color:var(--surface)}25%{box-shadow:0 0 0 4px rgba(72,199,142,.55),0 0 18px 6px rgba(72,199,142,.3);background-color:rgba(72,199,142,.1)}65%{box-shadow:0 0 0 2px rgba(72,199,142,.25);background-color:rgba(72,199,142,.05)}100%{box-shadow:var(--ss);background-color:var(--surface)}}
.add-section.promoted{animation:promote-pulse 1.1s ease-out}
/* Sort headers */
.th-sort{cursor:pointer;user-select:none;transition:color .12s;white-space:nowrap}
.th-sort:hover{color:var(--accent)}
.th-sort-active{color:var(--accent)}
/* Column layout manager */
.col-order-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--s2);border:1px solid var(--border);border-radius:var(--rs);margin-bottom:6px}
.col-move-btns{display:flex;flex-direction:column;gap:2px;flex-shrink:0}
.col-move-btns button{background:var(--s3);border:1px solid var(--border);border-radius:3px;width:24px;height:20px;font-size:.6rem;cursor:pointer;line-height:1;padding:0;color:var(--t2);transition:all .1s}
.col-move-btns button:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}
.col-move-btns button:disabled{opacity:.3;cursor:default}
.col-name{flex:1;font-size:.85rem;font-weight:600}
.col-name-hidden{opacity:.45}
.col-locked{font-size:.72rem;color:var(--muted);font-style:italic;flex-shrink:0}
.sec-title{font-family:'Barlow Condensed',sans-serif;font-size:.76rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.sec-title::after{content:'';flex:1;height:1px;background:var(--border)}
.ro-hdr{display:grid;grid-template-columns:180px 160px;gap:11px;margin-bottom:14px}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:.7rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t2)}
.field input,.field textarea{border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.88rem;padding:8px 11px;outline:none;transition:border-color .15s}
.field input:focus,.field textarea:focus{border-color:var(--accent);background:#fff}
.field input::placeholder,.field textarea::placeholder{color:var(--muted)}
.field textarea{resize:vertical;min-height:36px;max-height:80px;font-family:'Barlow',sans-serif;font-size:.84rem}
.date-btn{border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.88rem;padding:8px 11px;cursor:pointer;text-align:left;transition:border-color .15s;width:100%;display:flex;align-items:center;justify-content:space-between}
.date-btn:hover{border-color:var(--accent)}
.date-btn svg{width:13px;height:13px;opacity:.4;flex-shrink:0}
.notes-toggle{font-size:.72rem;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:color .15s;user-select:none}
.notes-toggle:hover{color:var(--accent)}
.notes-wrap{display:none;margin-top:10px}
.notes-wrap.open{display:block}
.jobs-lbl{font-size:.7rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t2);margin-bottom:7px}
.jobs-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.job-row{display:grid;grid-template-columns:1fr 100px auto;gap:7px;align-items:center;position:relative}
.job-row input{border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.86rem;padding:7px 10px;outline:none;transition:border-color .15s}
.job-row input:focus{border-color:var(--accent);background:#fff}
.job-row input::placeholder{color:var(--muted)}
.btn-rj{background:transparent;border:1.5px solid var(--border);color:var(--muted);width:31px;height:33px;border-radius:var(--rs);cursor:pointer;font-size:.9rem;transition:all .12s;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.btn-rj:hover{border-color:var(--red);color:var(--red);background:var(--rl)}
.ac-wrap{position:relative}
.ac-dd{display:none;position:fixed;background:#fff;border:1.5px solid var(--accent);border-radius:var(--rs);z-index:9999;box-shadow:var(--sh);max-height:230px;overflow-y:auto}
.ac-dd.open{display:block}
.ac-hint{padding:5px 10px;font-size:.63rem;color:var(--muted);font-family:'JetBrains Mono',monospace;background:var(--s2);border-bottom:1px solid var(--border)}
.ac-item{padding:8px 11px;cursor:pointer;font-size:.83rem;display:flex;justify-content:space-between;align-items:center;color:var(--text);border-bottom:1px solid var(--border)}
.ac-item:last-child{border-bottom:none}
.ac-item:hover,.ac-item.focused{background:var(--al);color:var(--accent)}
.ac-h{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted)}
.ac-item:hover .ac-h,.ac-item.focused .ac-h{color:var(--accent)}
.form-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn-aj{background:#fff;border:1.5px solid var(--accent);color:var(--accent);font-family:'Barlow',sans-serif;font-size:.78rem;font-weight:600;padding:6px 12px;border-radius:var(--rs);cursor:pointer;transition:all .15s}
.btn-aj:hover{background:var(--al)}
.jt-disp{font-family:'JetBrains Mono',monospace;font-size:.76rem;color:var(--t2);background:var(--s3);border:1px solid var(--border);padding:5px 11px;border-radius:var(--rs);margin:0 auto;text-align:center}
.jt-disp strong{color:var(--accent)}
.btn-save{background:var(--accent);color:#fff;border:none;font-family:'Barlow Condensed',sans-serif;font-size:.92rem;font-weight:700;letter-spacing:1px;padding:7px 24px;border-radius:var(--rs);cursor:pointer;transition:background .15s}
.btn-save:hover{background:var(--ah)}

/* ── TABLE ── */
.tbl-toolbar{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--border);background:var(--s2);gap:10px;flex-wrap:wrap}
.tl-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tbl-title{font-family:'Barlow Condensed',sans-serif;font-size:.76rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.filter-grp{display:flex;border:1px solid var(--border);border-radius:var(--rs);overflow:hidden}
.fbtn{font-family:'Barlow',sans-serif;font-size:.75rem;font-weight:500;padding:4px 11px;border:none;background:#fff;color:var(--t2);cursor:pointer;transition:all .12s;border-right:1px solid var(--border)}
.fbtn:last-child{border-right:none}
.fbtn:hover{background:var(--s3)}
.fbtn.active{background:var(--accent);color:#fff}
.search-wrap{position:relative;display:flex;align-items:center}
.search-inp{border:1.5px solid var(--border);border-radius:var(--rs);background:#fff;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.78rem;padding:5px 10px 5px 28px;outline:none;transition:border-color .15s;width:180px}
.search-inp:focus{border-color:var(--accent)}
.search-inp::placeholder{color:var(--muted)}
.search-icon{position:absolute;left:8px;width:12px;height:12px;color:var(--muted);pointer-events:none}
.btn-graph{display:flex;align-items:center;gap:4px;background:#fff;border:1.5px solid var(--border);color:var(--t2);font-family:'Barlow',sans-serif;font-size:.76rem;font-weight:600;padding:5px 11px;border-radius:var(--rs);cursor:pointer;transition:all .15s}
.btn-graph:hover{border-color:var(--accent);color:var(--accent);background:var(--al)}
.btn-graph svg{width:12px;height:12px}
table{width:100%;border-collapse:collapse;font-size:.85rem}
thead th{font-family:'Barlow Condensed',sans-serif;font-size:.67rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 14px;background:var(--s2);border-bottom:1px solid var(--border)}
tbody tr{border-bottom:1px solid var(--border);transition:background .1s}
tbody tr:last-child{border-bottom:none}
tbody tr:hover{background:var(--s2)}
tbody td{padding:10px 14px;vertical-align:top}
.td-ro{font-family:'JetBrains Mono',monospace;font-weight:600;color:var(--accent);font-size:.86rem;cursor:pointer;position:relative;white-space:nowrap;display:inline-block}
.td-ro:hover{text-decoration:underline}
.ctip{display:none;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--text);color:#fff;font-size:.6rem;padding:3px 7px;border-radius:4px;white-space:nowrap;pointer-events:none;font-family:'Barlow',sans-serif;z-index:100}
.ctip.show{display:block}
.td-date{font-family:'JetBrains Mono',monospace;color:var(--t2);font-size:.76rem;white-space:nowrap}
.td-hrs{font-family:'Barlow Condensed',sans-serif;font-size:1.25rem;font-weight:700;color:var(--text);white-space:nowrap}
.td-jobs{display:flex;flex-direction:column;gap:4px}
.ji{display:flex;gap:7px;align-items:center}
.ji-h{font-family:'JetBrains Mono',monospace;font-size:.65rem;font-weight:600;color:var(--accent);background:var(--al);padding:2px 5px;border-radius:3px;white-space:nowrap;cursor:pointer;border:1px solid transparent;transition:all .12s;min-width:44px;text-align:center}
.ji-h:hover{border-color:var(--accent)}
.ji-h.editing{background:#fff;border:1.5px solid var(--accent);outline:none}
.ji-d{font-size:.81rem;color:var(--t2);cursor:pointer}
.ji-d:hover{color:var(--text);text-decoration:underline dotted}
.ji-d-inp{font-size:.81rem;color:var(--text);border:1.5px solid var(--accent);border-radius:var(--rs);padding:1px 6px;outline:none;font-family:'Barlow',sans-serif;background:#fff;min-width:150px}
.ji-del{background:transparent;border:none;color:var(--muted);width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:.72rem;display:flex;align-items:center;justify-content:center;transition:all .12s;opacity:0;flex-shrink:0}
.ji:hover .ji-del{opacity:1}
.ji-del:hover{background:var(--rl);color:var(--red)}
.td-note{font-size:.75rem;color:var(--muted);font-style:italic;margin-top:3px}
.row-actions{display:flex;gap:5px;align-items:center}
.btn-edit-ro{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:.68rem;padding:3px 8px;border-radius:var(--rs);cursor:pointer;font-family:'Barlow',sans-serif;font-weight:500;transition:all .12s;white-space:nowrap}
.btn-edit-ro:hover{border-color:var(--accent);color:var(--accent);background:var(--al)}
.btn-del-ro{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:.68rem;padding:3px 8px;border-radius:var(--rs);cursor:pointer;font-family:'Barlow',sans-serif;font-weight:500;transition:all .12s;white-space:nowrap}
.btn-del-ro:hover{border-color:var(--red);color:var(--red);background:var(--rl)}
.empty-row td{text-align:center;padding:44px;color:var(--muted);font-size:.86rem}
tfoot td{padding:8px 14px;background:var(--s2);border-top:2px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--t2)}
.tfoot-label{text-align:right;font-weight:600;letter-spacing:.5px}
.tfoot-val{font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:700;color:var(--accent)}
.tfoot-val-toggle{cursor:pointer;user-select:none;transition:opacity .15s}
.tfoot-val-toggle:hover{opacity:.7}

/* ── CALENDAR ── */
.cal-popup{display:none;position:fixed;background:#fff;border:1.5px solid var(--accent);border-radius:var(--r);box-shadow:var(--sl);z-index:600;width:308px;padding:12px}
.cal-popup.open{display:block}
.cal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-hdr span{font-family:'Barlow Condensed',sans-serif;font-size:.95rem;font-weight:700;letter-spacing:.5px}
.cal-nav{background:transparent;border:1px solid var(--border);color:var(--t2);width:26px;height:26px;border-radius:var(--rs);cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .12s}
.cal-nav:hover{background:var(--al);border-color:var(--accent);color:var(--accent)}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}
.cal-dow span{font-family:'Barlow Condensed',sans-serif;font-size:.65rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);text-align:center;padding:3px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-day{border-radius:var(--rs);padding-top:4px;cursor:pointer;text-align:center;transition:all .12s;min-height:38px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.cal-day:hover{background:var(--al)}
.cal-day.other-month{opacity:.35;cursor:default}
.cal-day.other-month:hover{background:transparent}
.cal-day.today-cal{background:var(--s3)}
.cal-day.selected-cal{background:var(--accent)!important}
.cal-day.selected-cal .cal-dn{color:#fff!important}
.cal-day.selected-cal .cal-dh{color:rgba(255,255,255,.85)!important;background:rgba(255,255,255,.25)!important}
.cal-dn{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--text);line-height:1}
.cal-day.today-cal .cal-dn{color:var(--accent);font-weight:700}
.cal-dh{font-size:.58rem;font-family:'JetBrains Mono',monospace;color:var(--accent);background:var(--al);border-radius:2px;padding:1px 3px;margin-top:2px;line-height:1.2}
.cal-day.off-day{opacity:.7}
.cal-doff{font-size:.7rem;margin-top:2px;line-height:1;color:var(--amber)}
.cal-off-btn{cursor:pointer}
.cal-off-ghost{font-size:.65rem;margin-top:2px;line-height:1;opacity:0;transition:opacity .12s;cursor:pointer;filter:grayscale(1)}
.cal-day:hover .cal-off-ghost{opacity:.4}
.cal-day.off-day .cal-off-btn:hover{opacity:.7}

/* ── MODALS ── */
.mo{display:none;position:fixed;inset:0;background:rgba(15,20,35,.45);z-index:500;align-items:center;justify-content:center}
.mo.open{display:flex}
.md{background:var(--surface);border-radius:var(--r);padding:24px 24px 20px;box-shadow:var(--sl);width:420px;max-width:96vw;max-height:90vh;overflow-y:auto;position:relative}
.md.wide{width:740px}
.md.xwide{width:900px}
.md.tall{height:720px;display:flex;flex-direction:column}
.md h3{font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:700;margin-bottom:4px}
.md p{font-size:.78rem;color:var(--t2);margin-bottom:14px;line-height:1.5}
.mf{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.mf label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.mf input,.mf textarea{border:1.5px solid var(--border);border-radius:var(--rs);padding:8px 10px;font-size:.88rem;font-family:'JetBrains Mono',monospace;color:var(--text);outline:none;transition:border-color .15s;background:var(--s2);width:100%}
.mf input:focus,.mf textarea:focus{border-color:var(--accent);background:#fff}
.ma{display:flex;gap:7px;justify-content:flex-end;margin-top:6px}
.btn-c{background:var(--s3);border:1px solid var(--border);color:var(--t2);font-size:.82rem;padding:7px 14px;border-radius:var(--rs);cursor:pointer;font-family:'Barlow',sans-serif;font-weight:500}
.btn-c:hover{background:var(--border)}
.btn-a{background:var(--accent);border:none;color:#fff;font-size:.82rem;padding:7px 16px;border-radius:var(--rs);cursor:pointer;font-family:'Barlow',sans-serif;font-weight:600}
.btn-a:hover{background:var(--ah)}
.stabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border);margin-bottom:14px;flex-shrink:0}
.stabs::-webkit-scrollbar{display:none}
.stab{font-family:'Barlow',sans-serif;font-size:.78rem;font-weight:600;padding:6px 10px;cursor:pointer;border:none;background:transparent;color:var(--muted);border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap;flex-shrink:0}
.stab:hover{color:var(--t2)}
.stab.active{color:var(--accent);border-bottom-color:var(--accent)}
.tc{display:none;flex-direction:column;gap:10px;flex:1;overflow-y:auto}
.tc.active{display:flex}
.pl{display:flex;flex-direction:column;flex:1;overflow-y:auto;min-height:0;padding-right:2px}
.pi{display:flex;align-items:center;gap:6px;padding:5px 4px;border-bottom:1px solid var(--border)}
.pi:last-child{border-bottom:none}
.pi-handle{color:var(--muted);font-size:1.1rem;cursor:grab;display:flex;align-items:center;user-select:none;touch-action:none;opacity:.35;transition:opacity .12s;flex-shrink:0;line-height:1}
.pi-handle:hover{opacity:1}
.pi.dragging{opacity:.3}
.pi.drag-over{box-shadow:inset 0 2px 0 var(--accent)}
.pi-name{flex:1;min-width:0;border:none;border-bottom:1.5px solid transparent;background:transparent;font-family:'Barlow',sans-serif;font-size:.88rem;font-weight:600;color:var(--text);padding:2px 4px;outline:none;transition:border-color .15s,background .15s;border-radius:3px 3px 0 0}
.pi-name:hover{border-bottom-color:var(--border)}
.pi-name:focus{border-bottom-color:var(--accent);background:var(--surface)}
.pi-hrs{width:56px;border:1.5px solid var(--border);border-radius:4px;background:var(--surface);font-family:'JetBrains Mono',monospace;font-size:.78rem;padding:3px 6px;color:var(--text);outline:none;transition:border-color .15s;flex-shrink:0}
.pi-hrs:focus{border-color:var(--accent)}
.pi-lt-badge{font-size:.67rem;font-weight:700;padding:2px 8px;border-radius:10px;cursor:pointer;user-select:none;transition:opacity .12s;letter-spacing:.3px;flex-shrink:0}
.pi-lt-badge:hover{opacity:.75}
.pi-lt-badge[data-lt="CP"]{background:var(--s3);color:var(--muted)}
.pi-lt-badge[data-lt="warranty"]{background:var(--al);color:var(--accent)}
.pi-lt-badge[data-lt="internal"]{background:var(--aml);color:var(--amber)}
.pi-usage{margin-left:auto;font-size:.67rem;color:var(--muted);font-family:'JetBrains Mono',monospace;white-space:nowrap;opacity:.7}
.pi-never{opacity:.3}
.btn-pup,.btn-pdel{background:transparent;border:1px solid var(--border);color:var(--muted);width:26px;height:26px;border-radius:var(--rs);cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0}
.btn-pup:hover{background:var(--s3);color:var(--t2)}
.btn-pdel:hover{border-color:var(--red);color:var(--red);background:var(--rl)}
.add-pr{display:grid;grid-template-columns:1fr 70px auto auto;gap:6px;align-items:center;padding-top:6px;border-top:1px solid var(--border);margin-top:4px}
.add-pr input{border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);font-family:'JetBrains Mono',monospace;font-size:.8rem;padding:6px 8px;color:var(--text);outline:none;transition:border-color .15s}
.add-pr input:focus{border-color:var(--accent);background:#fff}
.add-pr input::placeholder{color:var(--muted)}
.btn-padd{background:var(--accent);border:none;color:#fff;font-size:.78rem;font-weight:600;padding:6px 11px;border-radius:var(--rs);cursor:pointer;white-space:nowrap;font-family:'Barlow',sans-serif}
.btn-padd:hover{background:var(--ah)}
.preset-suggest{display:none;position:absolute;top:100%;left:0;right:0;background:var(--card);border:1.5px solid var(--border);border-radius:var(--rs);max-height:160px;overflow-y:auto;z-index:20;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.preset-suggest-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;cursor:pointer;font-size:.82rem;border-bottom:1px solid var(--border)}
.preset-suggest-item:last-child{border-bottom:none}
.preset-suggest-item:hover{background:var(--al)}
.preset-suggest-name{color:var(--text);font-weight:500}
.preset-suggest-hrs{color:var(--muted);font-size:.74rem;font-family:'JetBrains Mono',monospace}
.pl-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex-shrink:0}
.pl-search{flex:1;min-width:140px;border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);font-family:'Barlow',sans-serif;font-size:.82rem;padding:6px 10px;color:var(--text);outline:none;transition:border-color .15s}
.pl-search:focus{border-color:var(--accent);background:#fff}
.pl-search::placeholder{color:var(--muted)}
.pl-sort-grp{display:flex;gap:2px;flex-shrink:0}
.pl-sort{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Barlow',sans-serif;font-size:.72rem;font-weight:600;padding:4px 9px;border-radius:var(--rs);cursor:pointer;white-space:nowrap;transition:all .12s}
.pl-sort.active{background:var(--accent);border-color:var(--accent);color:#fff}
.pl-sort:not(.active):hover{border-color:var(--accent);color:var(--accent);background:var(--al)}
.btn-preset-reset{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Barlow',sans-serif;font-size:.75rem;font-weight:600;padding:5px 9px;border-radius:var(--rs);cursor:pointer;white-space:nowrap;transition:all .12s}
.btn-preset-reset:hover{border-color:var(--red);color:var(--red);background:var(--rl)}

.pl-empty{color:var(--muted);font-size:.82rem;padding:24px 0;text-align:center;grid-column:1/-1}
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}
.toggle-row:last-child{border-bottom:none}
.toggle-lbl{font-size:.84rem;color:var(--text);font-weight:500}
.toggle-sub{font-size:.74rem;color:var(--muted);margin-top:1px}
.toggle{position:relative;width:36px;height:20px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.tslider{position:absolute;inset:0;background:var(--b2);border-radius:20px;cursor:pointer;transition:.2s}
.tslider::before{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.toggle input:checked+.tslider{background:var(--accent)}
.toggle input:checked+.tslider::before{transform:translateX(16px)}
.setting-row{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid var(--border)}
.setting-row:last-child{border-bottom:none}
.setting-row label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.setting-row input{border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.88rem;padding:7px 10px;outline:none;transition:border-color .15s}
.setting-row input:focus{border-color:var(--accent);background:#fff}
.exp-section{background:var(--s2);border:1px solid var(--border);border-radius:var(--rs);padding:14px;margin-bottom:8px}
.exp-title{font-family:'Barlow Condensed',sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.5px;margin-bottom:6px;color:var(--text)}
.exp-desc{font-size:.78rem;color:var(--t2);margin-bottom:10px;line-height:1.5}
.btn-exp{background:#fff;border:1.5px solid var(--accent);color:var(--accent);font-family:'Barlow',sans-serif;font-size:.82rem;font-weight:600;padding:8px 16px;border-radius:var(--rs);cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.btn-exp:hover{background:var(--al)}
.btn-exp svg{width:13px;height:13px}

.exp-import-section{border-top:1.5px dashed var(--border);padding-top:14px;margin-top:4px}
.import-summary{background:var(--s2);border:1.5px solid var(--border);border-radius:var(--rs);padding:12px 14px;margin-top:10px}
.import-summary-stats{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;margin-bottom:8px;color:var(--text)}
.import-summary-stats strong{color:var(--accent)}
.import-warn{font-size:.75rem;color:#ef4444;font-weight:600;margin-bottom:10px}
.import-actions{display:flex;gap:8px;flex-wrap:wrap}
.per-list{display:flex;flex-direction:column;gap:5px;max-height:380px;overflow-y:auto}
.per-item{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--rs);cursor:pointer;transition:all .12s}
.per-item:hover,.per-item.active{border-color:var(--accent);background:var(--al)}
.pi-lbl{font-family:'JetBrains Mono',monospace;font-size:.8rem;font-weight:600;color:var(--text)}
.per-item.active .pi-lbl{color:var(--accent)}
.pi-r{text-align:right}
.per-hrs{font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:700;color:var(--muted)}
.per-item.active .per-hrs{color:var(--accent)}
.pi-cnt{font-size:.7rem;color:var(--muted)}
.dib{background:var(--al);border:1px solid var(--accent);border-radius:var(--rs);padding:11px 13px;margin-bottom:12px;display:none}
.dib.show{display:block}
.dib-lbl{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--accent);margin-bottom:3px;font-family:'Barlow Condensed',sans-serif}
.dib-val{font-family:'Barlow Condensed',sans-serif;font-size:1.8rem;font-weight:700;color:var(--accent);line-height:1}
.dib-sub{font-size:.73rem;color:var(--t2);margin-top:2px}
.edit-jobs-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.ej-row{display:grid;grid-template-columns:1fr 85px auto;gap:6px;align-items:center}
.ej-row input{border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.84rem;padding:7px 9px;outline:none;transition:border-color .15s}
.ej-row input:focus{border-color:var(--accent);background:#fff}
.ej-row input::placeholder{color:var(--muted)}
.graph-md{background:var(--surface);border-radius:var(--r);padding:22px;box-shadow:var(--sl);width:680px;max-width:96vw}
.g-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.g-title{font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:700;color:var(--text)}
.g-sub{font-size:.7rem;color:var(--muted);margin-top:2px;font-family:'JetBrains Mono',monospace}
.btn-x{background:var(--s3);border:1px solid var(--border);color:var(--t2);width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .12s}
.btn-x:hover{background:var(--border)}
.div-h{height:1px;background:var(--border);margin:6px 0}

@media(max-width:640px){
  /* ── Layout ── */
  header{padding:0 10px;height:48px;grid-template-columns:auto 1fr auto}
  main{padding:12px 10px;gap:12px}
  .save-bar{padding:4px 10px}
  .logo{width:28px;height:28px;max-width:28px;max-height:28px}
  .logo img{width:28px;height:28px;max-width:28px;max-height:28px}
  .app-title{font-size:.82rem}

  /* ── Header right side: hide low-priority items ── */
  .streak-pill{display:none!important}
  .pp-goal-pill{display:none!important}
  .comeup-pill{display:none!important}
  .eff-pill{display:none!important}

  /* ── Add-RO form ── */
  .ro-hdr{grid-template-columns:1fr 1fr}
  .add-section{padding:14px 12px}
  /* Job row: desc + hrs on first line, extras wrap below */
  .job-row{grid-template-columns:1fr 80px auto;gap:5px}
  .job-row input{font-size:.82rem;padding:7px 8px}
  .lt-sel{gap:1px}
  .lt-btn{padding:6px 7px;font-size:.62rem;min-height:34px}
  .up-check{font-size:.65rem}
  .btn-rj{width:36px;height:36px}

  /* ── RO Log table: switch to card-style rows ── */
  .ro-table{width:100%}
  .ro-table thead{display:none}
  .ro-table tbody tr{display:flex;flex-direction:column;padding:10px 12px;gap:3px;border-bottom:1px solid var(--border)}
  .ro-table tbody tr td{border:none;padding:0;font-size:.82rem;display:block}
  .ro-table td.td-ro{font-weight:700;color:var(--accent);font-size:.9rem}
  .ro-table td.td-date{color:var(--muted);font-size:.72rem;font-family:'JetBrains Mono',monospace}
  .ro-table td.td-hrs{display:none}
  .ro-table td.td-jobs{white-space:normal;overflow:visible;text-overflow:unset}
  .ro-table td.td-act{display:flex;gap:6px;margin-top:4px}
  .ro-table td.td-act button{min-height:36px;padding:0 14px}

  /* ── Modals ── */
  .md{padding:18px 16px 16px;border-radius:var(--r) var(--r) 0 0;position:fixed;bottom:0;left:0;right:0;max-width:100%;width:100%;max-height:92vh;border-radius:14px 14px 0 0}
  .md.wide,.md.xwide{width:100%;max-width:100%}
  /* settings modal tab bar becomes scrollable */
  .stabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px}
  .stab{flex-shrink:0}

  /* Edit modal job rows */
  .ej-row{grid-template-columns:1fr 75px auto;gap:5px}

  /* ── Tap target boosts ── */
  .btn-pdel,.btn-pup,.btn-aj,.btn-padd,.btn-preset-reset,.btn-rj{min-height:38px;min-width:38px}
  .btn-save{min-height:44px}

  /* ── Preset list toolbar wraps cleanly ── */
  .pl-toolbar{gap:5px}
  .pl-sort{padding:6px 9px;font-size:.72rem}

  /* ── Save bar: hide logout text, show icon only ── */
  .btn-fbar{font-size:.65rem;padding:2px 7px}
}

/* ── EFFICIENCY PILL ── */
.eff-pill{cursor:default}
.eff-pill.eff-red{background:var(--rl)!important;border-color:var(--red)!important;color:var(--red)!important}
.eff-pill.eff-amber{background:var(--aml)!important;border-color:var(--amber)!important;color:var(--amber)!important}
.eff-pill.eff-green{background:var(--gl)!important;border-color:var(--green)!important;color:var(--green)!important}

/* ── COMEBACK / UPSELL BADGES ── */
.badge-cb{display:inline-block;background:var(--red);color:#fff;font-size:.54rem;font-weight:700;letter-spacing:.4px;padding:1px 5px;border-radius:3px;font-family:'Barlow Condensed',sans-serif;vertical-align:middle;margin-left:4px;line-height:1.4}
tr.tr-click{cursor:pointer}
tr.tr-click:hover td{background:var(--s2)}
.badge-up{display:inline-block;background:var(--green);color:#fff;font-size:.54rem;font-weight:700;letter-spacing:.4px;padding:1px 5px;border-radius:3px;font-family:'Barlow Condensed',sans-serif;vertical-align:middle;margin-left:3px;line-height:1.4}
.ji-ns{display:inline-flex;align-items:center;gap:3px;background:var(--al);border:1px solid var(--accent);color:var(--accent);font-size:.58rem;font-weight:600;padding:2px 6px 2px 5px;border-radius:20px;font-family:'JetBrains Mono',monospace;vertical-align:middle;margin-left:4px;line-height:1;white-space:nowrap;opacity:.85}
.ji-ns::before{content:'⚙';font-size:.6rem;opacity:.7}

/* ── LABOR TYPE TAGS ── */
.lt-sel{display:flex;gap:2px;flex-shrink:0}
.lt-btn{background:var(--s3);border:1px solid var(--border);color:var(--muted);font-size:.6rem;font-weight:700;padding:3px 6px;border-radius:3px;cursor:pointer;font-family:'Barlow Condensed',sans-serif;letter-spacing:.4px;transition:all .1s;line-height:1}
.lt-btn:hover{border-color:var(--b2);color:var(--t2)}
.lt-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.lt-btn.lt-wr.active{background:#7c3aed;border-color:#7c3aed}
.lt-btn.lt-int.active{background:var(--green);border-color:var(--green)}
.ji-lt{display:inline-block;font-size:.53rem;font-weight:700;padding:1px 4px;border-radius:3px;font-family:'Barlow Condensed',sans-serif;vertical-align:middle;margin-left:3px;letter-spacing:.4px;line-height:1.4}
.ji-lt.lt-CP{background:var(--al);color:var(--accent)}
.ji-lt.lt-warranty{background:#ede9fe;color:#7c3aed}
.ji-lt.lt-internal{background:var(--gl);color:var(--green)}

/* ── UPSELL CHECKBOX IN JOB ROW ── */
.up-check{display:flex;align-items:center;gap:3px;font-size:.67rem;color:var(--muted);cursor:pointer;user-select:none;white-space:nowrap;flex-shrink:0}
.up-check input{width:13px;height:13px;cursor:pointer;accent-color:var(--green);flex-shrink:0}
.up-check:hover{color:var(--green)}

/* ── COMEBACK ROW (add form) ── */
.comeback-row{display:none;margin-bottom:10px;align-items:center;gap:10px}
.comeback-row.visible{display:flex}
.cb-label{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;font-size:.83rem;color:var(--text);font-weight:500}
.cb-label input{width:15px;height:15px;cursor:pointer;accent-color:var(--red);flex-shrink:0}
.cb-sub{font-size:.73rem;color:var(--muted)}

/* ── PERSONAL RECORDS ── */
.records-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rec-card{background:var(--s2);border:1px solid var(--border);border-radius:var(--rs);padding:12px;text-align:center}
.rec-val{font-family:'Barlow Condensed',sans-serif;font-size:1.55rem;font-weight:700;color:var(--accent);line-height:1}
.rec-lbl{font-size:.61rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-top:3px}
.rec-sub{font-size:.69rem;color:var(--t2);margin-top:3px;font-family:'JetBrains Mono',monospace}

/* ── TRENDS ── */
.s-mode-tabs{display:flex;gap:2px;margin-bottom:12px;flex-shrink:0}
.s-mode-btn{font-family:'Barlow',sans-serif;font-size:.8rem;font-weight:600;padding:5px 13px;border:1px solid var(--border);background:var(--s3);color:var(--muted);cursor:pointer;border-radius:var(--rs);transition:all .12s}
.s-mode-btn:hover{color:var(--t2)}
.s-mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.trend-section{margin-bottom:20px}
.trend-title{font-family:'Barlow Condensed',sans-serif;font-size:.83rem;font-weight:700;letter-spacing:.5px;color:var(--text);margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--border);text-transform:uppercase}
.trend-dow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:4px}
.tdow-card{background:var(--s2);border:1px solid var(--border);border-radius:var(--rs);padding:8px 5px;text-align:center}
.tdow-day{font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.5px;margin-bottom:3px}
.tdow-val{font-family:'Barlow Condensed',sans-serif;font-size:1.2rem;font-weight:700;color:var(--accent)}
.tdow-sub{font-size:.62rem;color:var(--muted);font-family:'JetBrains Mono',monospace;margin-top:1px}
.trend-bar-list{display:flex;flex-direction:column;gap:5px}
.tbar-row{display:grid;grid-template-columns:130px 1fr 60px;gap:8px;align-items:center}
.tbar-lbl{color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.76rem}
.tbar-wrap{height:8px;background:var(--s3);border-radius:4px;overflow:hidden}
.tbar-fill{height:100%;background:var(--accent);border-radius:4px}
.tbar-num{font-family:'JetBrains Mono',monospace;font-size:.68rem;color:var(--muted);text-align:right}
.tbar-fill.green{background:var(--green)}
.tbar-fill.red{background:var(--red)}
.tbar-fill.amber{background:var(--amb)}

/* ── REPORT LINK ── */
.btn-fbar-rpt{background:transparent;border:1px solid var(--accent);color:var(--accent);font-size:.63rem;padding:2px 8px;border-radius:3px;cursor:pointer;font-family:'JetBrains Mono',monospace;transition:all .12s;text-decoration:none;display:none}
.btn-fbar-rpt:hover{background:var(--al)}

@media(max-width:480px){
  .records-grid{grid-template-columns:1fr 1fr}
  .trend-dow-grid{grid-template-columns:repeat(3,1fr)}
  .tbar-row{grid-template-columns:90px 1fr 48px}
  .tbar-lbl{font-size:.7rem}
  /* RO header stacks to single column */
  .ro-hdr{grid-template-columns:1fr}
  /* Job row: push lt-sel + upsell to second line */
  .job-row{grid-template-columns:1fr 80px auto;flex-wrap:wrap}
  .lt-sel{order:10;width:100%;justify-content:flex-start;margin-top:3px}
  .up-check{order:10}
  /* Readable badge sizes */
  .ji-lt{font-size:.6rem;padding:2px 5px}
  .badge-cb,.badge-up{font-size:.6rem}
  /* Modal full-height on very small screens */
  .md{max-height:96vh}
  /* Add form padding */
  .add-section{padding:12px 10px}
}

/* ── MOBILE CAMERA BUTTON ── */
.btn-cam-mobile{display:none;align-items:center;justify-content:center;width:32px;height:32px;background:var(--s2);border:1.5px solid var(--border);border-radius:var(--rs);color:var(--t2);text-decoration:none;transition:all .12s;flex-shrink:0}
.btn-cam-mobile:hover{border-color:var(--accent);color:var(--accent);background:var(--al)}
@media(max-width:768px){.btn-cam-mobile{display:flex}}

/* ── CAM BADGE LINK ── */
a.cam-badge{cursor:pointer;text-decoration:none}
a.cam-badge:hover{opacity:1;background:var(--accent);color:#fff;border-color:var(--accent)}

/* ── PHOTO RANGE BAR ── */
.photo-range-bar{display:none;align-items:center;gap:7px;padding:6px 12px 8px;background:var(--s1);border-bottom:1px solid var(--border);flex-wrap:wrap}
.prb-lbl{font-size:.7rem;font-family:'Barlow Condensed',sans-serif;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.prb-inp{width:90px;padding:4px 8px;border:1.5px solid var(--border);border-radius:var(--rs);background:var(--s2);color:var(--t1);font-size:.8rem;font-family:'JetBrains Mono',monospace;outline:none;transition:border-color .12s}
.prb-inp:focus{border-color:var(--accent)}
.prb-sep{color:var(--t2);font-size:.9rem}
.prb-btn{padding:4px 12px;background:var(--accent);color:#fff;border:none;border-radius:var(--rs);font-size:.75rem;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:opacity .12s}
.prb-btn:hover{opacity:.85}
.prb-btn-c{padding:4px 10px;background:transparent;color:var(--t2);border:1.5px solid var(--border);border-radius:var(--rs);font-size:.75rem;font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all .12s}
.prb-btn-c:hover{border-color:var(--accent);color:var(--accent)}

/* ── DARK MODE TOGGLE ── */
.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--muted);width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;padding:0}
.theme-toggle:hover{background:var(--s3);border-color:var(--b2);color:var(--t2)}
.theme-toggle svg{width:15px;height:15px;transition:transform .3s ease}
.theme-toggle:hover svg{transform:rotate(30deg)}
.theme-icon-dark,.theme-icon-light{display:none}
:root .theme-icon-light{display:block}
:root .theme-icon-dark{display:none}
[data-theme="dark"] .theme-icon-light{display:none}
[data-theme="dark"] .theme-icon-dark{display:block}

/* ── WELCOME TOAST ── */
.welcome-toast{position:fixed;top:-80px;left:50%;transform:translateX(-50%);z-index:9000;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);padding:12px 20px;display:flex;align-items:center;gap:12px;transition:top .4s cubic-bezier(.4,0,.2,1);max-width:440px;width:92vw}
.welcome-toast.show{top:16px}
.wt-icon{font-size:1.5rem;flex-shrink:0}
.wt-body{flex:1;min-width:0}

/* ── PAY PERIOD GOAL PILL ── */
.pp-goal-pill{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:4px 10px;font-size:.72rem;font-weight:600;font-family:'Barlow Condensed',sans-serif;color:var(--t2);white-space:nowrap;transition:all .2s}
.pp-goal-bar{width:48px;height:6px;background:var(--s3);border-radius:3px;overflow:hidden}
.pp-goal-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .4s ease}
.pp-goal-text{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--t2)}
.pp-goal-pill.pp-goal-met{border-color:var(--green);background:var(--gl)}
.pp-goal-pill.pp-goal-met .pp-goal-bar-fill{background:var(--green)}
.pp-goal-pill.pp-goal-met .pp-goal-text{color:var(--green)}
.pp-goal-pill.pp-goal-near .pp-goal-bar-fill{background:var(--amber)}

/* ── COME-UP PILL (subtle) ── */
.comeup-pill{display:inline-flex;align-items:center;gap:3px;background:var(--gl);border:1px solid var(--green);border-radius:var(--rs);padding:3px 8px;font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:600;color:var(--green);opacity:.85;transition:opacity .2s}
.comeup-pill:hover{opacity:1}
.comeup-icon{font-size:.72rem}

/* ── SETTINGS SELECT ── */
.sel-setting{width:100%;padding:7px 10px;border:1.5px solid var(--border);border-radius:var(--rs);background:var(--surface);color:var(--text);font-size:.82rem;font-family:'Barlow',sans-serif;outline:none;transition:border-color .12s;cursor:pointer;appearance:auto}
.sel-setting:focus{border-color:var(--accent)}
[data-theme="dark"] .sel-setting{background:var(--s2);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .sel-setting:focus{border-color:var(--accent);background:var(--s3)}

/* ── ACCENT PREVIEW ── */
.accent-preview{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.wt-title{font-family:'Barlow Condensed',sans-serif;font-size:.92rem;font-weight:700;color:var(--text);letter-spacing:.3px}
.wt-sub{font-size:.76rem;color:var(--t2);margin-top:1px;font-family:'JetBrains Mono',monospace}
.wt-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 2px;flex-shrink:0}
.wt-close:hover{color:var(--text)}

/* ── STREAK BUBBLE ── */
.streak-pill{display:none;align-items:center;gap:4px;background:linear-gradient(135deg,#ff6b35,#f7c948);border:none;border-radius:20px;padding:4px 10px 4px 7px;font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:700;color:#fff;cursor:default;user-select:none;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.15)}
.streak-pill.visible{display:inline-flex}
.streak-fire{font-size:.8rem;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}

/* ── CONFETTI CANVAS ── */
#confetti-canvas{position:fixed;inset:0;z-index:10000;pointer-events:none}

/* ── MICRO ANIMATIONS ── */
.card,.hpill,.btn-icon,.streak-pill{transition:all .2s ease}
.card:hover{box-shadow:var(--sh)}
@keyframes fadeSlideIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.mo.open .md{animation:fadeSlideIn .2s ease-out}
@keyframes countUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.sc-val,.rec-val,.dib-val,.tfoot-val{animation:countUp .3s ease-out}
tbody tr{animation:fadeSlideIn .15s ease-out both}
tbody tr:nth-child(1){animation-delay:0s}
tbody tr:nth-child(2){animation-delay:.03s}
tbody tr:nth-child(3){animation-delay:.06s}
tbody tr:nth-child(4){animation-delay:.09s}
tbody tr:nth-child(5){animation-delay:.12s}

/* ── DOWNGRADE BANNER ── */
.tier-downgrade-banner,.acct-downgrade-banner{background:#fef3cd;border:1px solid #ffc107;color:#856404;border-radius:var(--rs);padding:10px 14px;margin-bottom:12px;font-size:.8rem;line-height:1.55}
[data-theme="dark"] .tier-downgrade-banner,[data-theme="dark"] .acct-downgrade-banner{background:#3d3200;border-color:#665200;color:#ffc107}
[data-theme="dark"] .acct-downgrade-banner a{color:#ffc107}
