﻿:root{
  --bg:#eceff1;--bg-rgb:236,239,241;--surface:#fff;--s2:#f5f6f7;--s3:#e4e8eb;
  --border:#d6dce1;--b2:#b7c0c8;
  --accent:#24577a;--ah:#1b405a;--al:#e7f0f6;
  --text:#17202a;--t2:#465260;--muted:#7b8794;
  --red:#b4232a;--rl:#fff1f2;
  --green:#2f6f4e;--gl:#edf7f1;
  --amber:#b86b16;--aml:#fff7ed;--amb:#d88a2d;
  --ss:0 1px 2px rgba(23,32,42,.08);
  --sh:0 4px 10px rgba(23,32,42,.08),0 1px 3px rgba(23,32,42,.05);
  --sl:0 14px 34px rgba(23,32,42,.14),0 4px 10px rgba(23,32,42,.08);
  --r:8px;--rs:5px;
}
[data-theme="dark"]{
  --bg:#11161b;--bg-rgb:17,22,27;--surface:#1b2229;--s2:#232b33;--s3:#2b3440;
  --border:#37414c;--b2:#46525f;
  --accent:#6fa4c7;--ah:#8bbadd;--al:#1d3445;
  --text:#e8edf2;--t2:#b5c0ca;--muted:#7f8c98;
  --red:#e06b6f;--rl:#351b1f;
  --green:#65b985;--gl:#183025;
  --amber:#e0a04f;--aml:#332717;--amb:#c88232;
  --ss:0 1px 3px rgba(0,0,0,.28);
  --sh:0 4px 12px rgba(0,0,0,.32),0 2px 4px rgba(0,0,0,.18);
  --sl:0 12px 32px rgba(0,0,0,.42),0 4px 8px rgba(0,0,0,.24);
}
[data-tone="shop"]{
  --bg:#eef0ec;--bg-rgb:238,240,236;--surface:#fffefa;--s2:#f3f1e8;--s3:#e1ded0;
  --border:#d6d0bf;--b2:#a69b84;
  --accent:#4f6f38;--ah:#385026;--al:#edf5e6;
  --text:#202016;--t2:#59543f;--muted:#827963;
}
[data-tone="motorhead"]{
  --bg:#e9e6df;--bg-rgb:233,230,223;--surface:#fffdf8;--s2:#f1eee7;--s3:#d9d2c6;
  --border:#c7bdac;--b2:#8f8170;
  --accent:#9f1d20;--ah:#741316;--al:#f9e7e7;
  --text:#221b17;--t2:#5a4b43;--muted:#84766c;
}
[data-tone="ocean"]{
  --bg:#e7f3f4;--bg-rgb:231,243,244;--surface:#fbffff;--s2:#eff9fa;--s3:#d2ecef;
  --border:#b7d7dc;--b2:#7caeb6;
  --accent:#087f8c;--ah:#05606b;--al:#e0f5f7;
  --text:#0d2b31;--t2:#315a62;--muted:#6a8990;
}
[data-tone="space"]{
  --bg:#ececf8;--bg-rgb:236,236,248;--surface:#fff;--s2:#f3f2fb;--s3:#dfdcf2;
  --border:#cbc6e7;--b2:#9d94c6;
  --accent:#6d28d9;--ah:#4c1d95;--al:#efe9ff;
  --text:#191328;--t2:#52466e;--muted:#7f7496;
}
[data-tone="forest"]{
  --bg:#edf2eb;--bg-rgb:237,242,235;--surface:#fffef9;--s2:#f1f5ed;--s3:#dce8d7;
  --border:#c5d5be;--b2:#8bab7d;
  --accent:#2f6f4e;--ah:#214f38;--al:#e5f3ec;
  --text:#15251c;--t2:#41594b;--muted:#728175;
}
[data-theme="dark"][data-tone="shop"]{
  --bg:#151711;--bg-rgb:21,23,17;--surface:#20231a;--s2:#292d21;--s3:#343929;
  --border:#444b35;--b2:#5c6648;
  --accent:#a3c86a;--ah:#c0df8c;--al:#26361c;
  --text:#f0f3e8;--t2:#c6ceb8;--muted:#8f9a7f;
}
[data-theme="dark"][data-tone="motorhead"]{
  --bg:#14100e;--bg-rgb:20,16,14;--surface:#211917;--s2:#2c211f;--s3:#3b2c28;
  --border:#563c35;--b2:#765246;
  --accent:#f04d45;--ah:#ff766d;--al:#451f1c;
  --text:#f4ebe5;--t2:#d6c2b8;--muted:#9a8175;
}
[data-theme="dark"][data-tone="ocean"]{
  --bg:#071a20;--bg-rgb:7,26,32;--surface:#0e2830;--s2:#14333d;--s3:#1b424d;
  --border:#275968;--b2:#397486;
  --accent:#47c7d8;--ah:#75ddec;--al:#103d48;
  --text:#e7fbff;--t2:#b5dce4;--muted:#7daab4;
}
[data-theme="dark"][data-tone="space"]{
  --bg:#090914;--bg-rgb:9,9,20;--surface:#141426;--s2:#1d1b35;--s3:#292547;
  --border:#3d3762;--b2:#5e528f;
  --accent:#b58cff;--ah:#ccb2ff;--al:#2c2050;
  --text:#f2edff;--t2:#c8bee8;--muted:#9085b3;
}
[data-theme="dark"][data-tone="forest"]{
  --bg:#0b1710;--bg-rgb:11,23,16;--surface:#14231a;--s2:#1b2d22;--s3:#253b2c;
  --border:#38523f;--b2:#4e6f56;
  --accent:#74c69d;--ah:#95d8b5;--al:#1d3d2a;
  --text:#ebf7ef;--t2:#bdd8c7;--muted:#84a18d;
}
[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}
[data-theme-bg="1"] body{
  background:
    linear-gradient(rgba(var(--bg-rgb),var(--theme-bg-fade,0)),rgba(var(--bg-rgb),var(--theme-bg-fade,0))),
    var(--theme-bg-image) center/cover fixed,
    var(--bg);
}
.range-setting{display:flex;align-items:center;gap:10px;width:220px;max-width:100%}
.range-setting input[type="range"]{flex:1;accent-color:var(--accent)}
.range-setting span{min-width:38px;text-align:right;font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--t2)}
.range-hint{font-size:.7rem;color:var(--muted);margin-top:4px;line-height:1.35}
.bg-select-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bg-select-row span{font-size:.78rem;color:var(--t2);font-family:'JetBrains Mono',monospace;background:var(--s2);border:1px solid var(--border);border-radius:var(--rs);padding:5px 9px}
.theme-bg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:min(58vh,520px);overflow:auto;padding-right:4px}
.theme-bg-card{border:2px solid var(--border);background:var(--s2);border-radius:var(--rs);overflow:hidden;cursor:pointer;text-align:left;transition:border-color .12s,transform .12s,box-shadow .12s}
.theme-bg-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--sh)}
.theme-bg-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--al)}
.theme-bg-card img,.theme-bg-default-preview{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--s3)}
.theme-bg-default-preview{background:linear-gradient(135deg,var(--al),var(--s3));display:grid;place-items:center;color:var(--accent);font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.theme-bg-card-body{display:grid;gap:4px;padding:7px 8px}
.theme-bg-name{display:block;font-size:.78rem;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.theme-bg-file{display:block;font-size:.65rem;color:var(--muted);font-family:'JetBrains Mono',monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.theme-bg-badges{display:flex;gap:4px;flex-wrap:wrap}
.theme-bg-badge{font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--al);color:var(--accent);border-radius:999px;padding:2px 6px}

:where(button, a, input, textarea, select, [tabindex]):focus-visible{
  outline:3px solid var(--accent);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
}

/* ── 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:rgba(255,255,255,.94);border-bottom:1px solid var(--border);padding:0 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:56px;box-shadow:var(--ss);position:sticky;top:0;z-index:200;backdrop-filter:blur(12px)}
[data-theme="dark"] header{background:rgba(26,31,46,.94)}
.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:8px;justify-content:flex-end;min-width:0}
.hpill{position:relative;display:flex;align-items:center;gap:7px;background:var(--s2);border:1px solid var(--border);border-radius:999px;min-height:30px;padding:5px 11px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .12s;user-select:none;font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:700;color:var(--t2);white-space:nowrap}
.hpill:hover{background:var(--al);border-color:var(--accent);color:var(--accent);box-shadow:0 3px 10px rgba(26,86,160,.1);transform:translateY(-1px)}
.hpill.accent-pill{background:var(--al);border-color:var(--accent);color:var(--accent)}
.date-hpill{padding-left:8px}
.hpill-icon{width:19px;height:19px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);color:var(--accent);flex-shrink:0}
.hpill-icon svg{width:12px;height:12px}
.chip-label{font-family:'Barlow',sans-serif;font-size:.66rem;font-weight:600;color:var(--muted);line-height:1;letter-spacing:.01em}
.date-main-row{display:flex;align-items:center;gap:6px;line-height:1}
.phrs{display:inline-flex;background:var(--accent);color:#fff;border-radius:999px;padding:2px 7px;font-size:.64rem;font-weight:800;line-height:1}
.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;align-items:center}
.btn-icon{background:var(--s2);border:1px solid var(--border);color:var(--t2);width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .12s}
.btn-icon:hover{background:var(--al);border-color:var(--accent);color:var(--accent);box-shadow:0 3px 10px rgba(26,86,160,.1);transform:translateY(-1px)}
.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.1px;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,transform .12s,box-shadow .12s,opacity .12s}
.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;position:relative;transition:background .18s,border-color .18s}
.log-card{transition:background .18s,border-color .18s,box-shadow .18s}
.log-card.viewing-other-day{border-color:var(--amb);background:linear-gradient(180deg,var(--aml),var(--surface) 110px)}
.log-card.viewing-other-day .tbl-toolbar{background:var(--aml);border-bottom-color:var(--amb)}
.log-card.viewing-other-day .tbl-toolbar::after{content:attr(data-view-label);font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:700;color:var(--amber);background:var(--surface);border:1px solid var(--amb);border-radius:999px;padding:3px 9px;white-space:nowrap}
.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:10000;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,.55);z-index:9200;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.mo.open{display:flex}
.md{background:var(--surface);border:1px solid var(--border);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}
.mo.open .md{animation:modalIn .18s ease-out}
@keyframes modalIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.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.12rem;font-weight:700;margin-bottom:4px;letter-spacing:.2px}
.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 .15s,box-shadow .15s;background:var(--s2);width:100%}
.mf input:focus,.mf textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(26,86,160,.1)}
.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:600;transition:background .12s,border-color .12s,color .12s,transform .12s}
.btn-c:hover{background:var(--border);color:var(--text)}
.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:700;box-shadow:0 4px 12px rgba(26,86,160,.18);transition:background .12s,box-shadow .12s,transform .12s}
.btn-a:hover{background:var(--ah);box-shadow:0 6px 16px rgba(26,86,160,.24)}
.btn-a:active,.btn-c:active{transform:translateY(1px)}
.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:700;padding:7px 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(--surface);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-wrap{display:flex;flex:1;min-width:180px;align-items:center;gap:5px}
.pl-search{flex:1;min-width:0;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)}
.btn-pl-clear{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Barlow',sans-serif;font-size:.72rem;font-weight:600;padding:5px 9px;border-radius:var(--rs);cursor:pointer;white-space:nowrap;transition:all .12s}
.btn-pl-clear:hover{border-color:var(--accent);color:var(--accent);background:var(--al)}
.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)}

.pl-empty{color:var(--muted);font-size:.82rem;padding:24px 0;text-align:center;grid-column:1/-1}
/* Recent Jobs */
.recent-jobs-section{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}
.rj-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;padding:0 2px}
.rj-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.btn-rj-clear{font-size:.72rem;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:2px 6px;border-radius:3px;font-family:'Barlow',sans-serif}
.btn-rj-clear:hover{color:var(--red)}
.rji{display:flex;align-items:center;gap:6px;padding:5px 4px;border-bottom:1px solid var(--border)}
.rji:last-child{border-bottom:none}
.rji-name{flex:1;min-width:0;font-size:.88rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rji-hrs{font-size:.75rem;font-family:'JetBrains Mono',monospace;color:var(--muted);flex-shrink:0;min-width:28px}
.btn-rj-save{font-size:.72rem;font-weight:700;padding:3px 10px;background:var(--al);color:var(--accent);border:1px solid var(--accent);border-radius:var(--rs);cursor:pointer;transition:all .12s;flex-shrink:0;white-space:nowrap;font-family:'Barlow',sans-serif}
.btn-rj-save:hover{background:var(--accent);color:#fff}
.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:30px;height:30px;border-radius:50%;cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;transition:all .12s;line-height:1}
.btn-x:hover{background:var(--border);color:var(--text);transform:translateY(-1px)}
.div-h{height:1px;background:var(--border);margin:6px 0}

@media(max-width:920px){
  header{padding:0 14px;grid-template-columns:auto 1fr auto}
  .hl{justify-content:flex-start}
  .app-title{font-size:1rem}
  .hr2{gap:6px}
  .pp-goal-pill,.comeup-pill{display:none!important}
  .date-hpill{min-height:30px}
}

@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}
  .chip-label,.ovf-btn-label{display:none}
  .hpill{padding:5px 9px}
  .date-hpill{padding-left:7px}
  .phrs{font-size:.62rem;padding:2px 6px}

  /* ── 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-pl-clear,.btn-rj,.btn-rj-save{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;background:var(--s2)!important;border-color:var(--border)!important;color:var(--t2)!important}
.eff-pill::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 3px rgba(138,149,163,.12);flex-shrink:0}
.eff-pill #eff-pct{font-weight:800;color:var(--text)}
.eff-pill.eff-red::before{background:var(--red);box-shadow:0 0 0 3px rgba(197,48,48,.1)}
.eff-pill.eff-amber::before{background:var(--amber);box-shadow:0 0 0 3px rgba(180,83,9,.1)}
.eff-pill.eff-green::before{background:var(--green);box-shadow:0 0 0 3px rgba(39,103,73,.1)}

/* ── 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(--s2);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(--text);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:7px;background:var(--s2);border:1px solid var(--border);border-radius:999px;min-height:30px;padding:5px 10px;font-size:.72rem;font-weight:700;font-family:'Barlow Condensed',sans-serif;color:var(--t2);white-space:nowrap;transition:background .2s,border-color .2s,color .2s,box-shadow .2s}
.pp-goal-pill:hover{box-shadow:0 3px 10px rgba(26,86,160,.1)}
.pp-goal-label{font-family:'Barlow',sans-serif;font-size:.66rem;font-weight:600;color:var(--muted);line-height:1}
.pp-goal-bar{width:50px;height:6px;background:var(--s3);border-radius:999px;overflow:hidden}
.pp-goal-bar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .4s ease}
.pp-goal-text{font-family:'JetBrains Mono',monospace;font-size:.68rem;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)}
.pp-goal-pill.pp-goal-near .pp-goal-text{color:var(--amber)}

/* ── COME-UP PILL (subtle) ── */
.comeup-pill{display:inline-flex;align-items:center;gap:4px;background:var(--gl);border:1px solid var(--green);border-radius:999px;min-height:30px;padding:5px 10px;font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:800;color:var(--green);opacity:.9;transition:opacity .2s,box-shadow .2s}
.comeup-pill:hover{opacity:1;box-shadow:0 3px 10px rgba(39,103,73,.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:var(--s2);border:1px solid var(--border);border-radius:999px;min-height:30px;padding:5px 10px;font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:750;color:var(--t2);cursor:default;user-select:none;white-space:nowrap}
.streak-pill::before{content:'';width:6px;height:6px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.12);flex-shrink:0}
.streak-pill.visible{display:inline-flex}
.streak-label{font-family:'Barlow',sans-serif;font-size:.66rem;font-weight:600;color:var(--muted);line-height:1}
#streak-count{color:var(--text);font-weight:800}
.streak-days{font-size:.62rem;margin-left:-2px}

/* ── 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 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}
.btn-save.is-saving{transform:scale(.98);opacity:.85}
.btn-save.is-saved{background:var(--green)!important;box-shadow:0 4px 12px rgba(39,103,73,.22)}

/* ── 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}
