:root{--bg:#eef2f7;--surface:#fff;--ink:#1a2230;--muted:#6e7277;--line:#dce2ea;--primary:#002b6a;--primary-dark:#001f4f;--primary-soft:#e6ecf5;--accent:#6e7277;--urgent:#b3261e;--high:#d97706;--medium:#2563eb;--low:#6e7277;--shadow:0 1px 3px rgba(0,22,60,.08),0 6px 18px rgba(0,22,60,.06);--radius:14px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary)}button{font-family:inherit;cursor:pointer}.topbar{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line);padding:12px 20px;justify-content:space-between;gap:16px;flex-wrap:wrap}.topbar,.topbar .brand{display:flex;align-items:center}.topbar .brand{gap:14px;font-weight:700;letter-spacing:.2px}.topbar .brand .logo{height:46px;width:auto;display:block}.topbar .brand .divider{width:1px;align-self:stretch;background:var(--line)}.topbar .brand .titles{line-height:1.2;font-size:15px;color:var(--primary)}.topbar .brand small{display:block;font-weight:500;color:var(--muted);font-size:12px}.topbar nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.topbar nav a,.topbar nav button{color:var(--primary);background:transparent;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:14px;text-decoration:none}.topbar nav a:hover,.topbar nav button:hover{background:var(--primary-soft)}.wrap{max-width:1080px;margin:0 auto;padding:24px 20px 60px}.narrow{max-width:560px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}h1{font-size:24px;margin:0 0 4px}h2{font-size:18px;margin:0 0 12px}.subtle{color:var(--muted);font-size:14px}label{display:block;font-size:13px;font-weight:600;margin:14px 0 5px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:15px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}textarea{min-height:90px;resize:vertical}.req{color:var(--urgent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:#fff;border:none;border-radius:10px;padding:12px 18px;font-size:15px;font-weight:600}.btn:hover{background:var(--primary-dark)}.btn.full{width:100%}.btn.ghost{background:transparent;color:var(--primary);border:1px solid var(--line)}.btn.ghost:hover{background:var(--primary-soft)}.btn.danger{background:transparent;color:var(--urgent);border:1px solid #f0c9c6}.btn.danger:hover{background:#fbeceb}.btn.small{padding:7px 12px;font-size:13px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.stat .n{font-size:26px;font-weight:700}.stat .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar input,.toolbar select{width:auto;flex:0 1 auto}.toolbar .grow{flex:1 1 200px}.joblist{display:grid;grid-gap:12px;gap:12px}.job{background:var(--surface);border-left:1px solid var(--line);border:1px solid var(--line);border-left-width:5px;border-radius:12px;padding:16px 18px;cursor:pointer;transition:box-shadow .15s,transform .05s}.job:hover{box-shadow:var(--shadow)}.job .row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.job h3{margin:0;font-size:16px}.job .meta{color:var(--muted);font-size:13px;margin-top:4px;display:flex;gap:14px;flex-wrap:wrap}.job.p-Urgent{border-left-color:var(--urgent)}.job.p-High{border-left-color:var(--high)}.job.p-Medium{border-left-color:var(--medium)}.job.p-Low{border-left-color:var(--low)}.badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}.badge.status{background:var(--primary-soft);color:var(--primary-dark)}.badge.pri-Urgent{background:#fbeceb;color:var(--urgent)}.badge.pri-High{background:#fdf0dd;color:var(--high)}.badge.pri-Medium{background:#e8effd;color:var(--medium)}.badge.pri-Low{background:#eef0f2;color:var(--low)}.tabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--line)}.tabs button{background:transparent;border:none;border-bottom:2px solid transparent;padding:8px 4px;margin-right:16px;font-size:15px;font-weight:600;color:var(--muted)}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.job .thumbwrap{position:relative;flex-shrink:0}.job .thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}.job .thumbcount{position:absolute;right:-6px;top:-6px;background:var(--primary);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 4px}.photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:8px;gap:8px;margin:4px 0 10px}.photoitem{position:relative;aspect-ratio:1/1}.photoitem img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}.photo-remove{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:none;background:var(--urgent);color:#fff;font-size:15px;line-height:1;display:grid;place-items:center;box-shadow:0 1px 3px rgba(0,0,0,.25)}.cal-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}.cal-nav{display:flex;gap:6px}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;margin-bottom:6px}.cal-weekdays div{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:center;font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.cal-cell{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-height:104px;padding:6px;display:flex;flex-direction:column;gap:3px}.cal-cell.muted{background:transparent;border-color:transparent}.cal-cell.muted .cal-date{opacity:.45}.cal-cell.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.cal-date{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:2px}.cal-pill{display:block;width:100%;text-align:left;border:none;border-radius:5px;padding:3px 6px;font-size:11px;font-weight:600;line-height:1.2;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--medium)}.cal-pill.pri-Urgent{background:var(--urgent)}.cal-pill.pri-High{background:var(--high)}.cal-pill.pri-Medium{background:var(--medium)}.cal-pill.pri-Low{background:var(--low)}.cal-pill.done{opacity:.45;text-decoration:line-through}.cal-more{font-size:10px;color:var(--muted)}@media (max-width:640px){.cal-cell{min-height:72px}.cal-pill{font-size:10px;padding:2px 4px}}.overlay{position:fixed;inset:0;background:rgba(20,28,23,.45);display:grid;place-items:center;padding:20px;z-index:40}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:560px;max-height:90vh;overflow:auto;padding:24px;box-shadow:var(--shadow)}.modal .head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.actions .spacer{flex:1 1}.empty{text-align:center;color:var(--muted);padding:50px 20px}.notice{background:#fff7e6;border:1px solid #f0d9a8;color:#7a5713;border-radius:12px;padding:14px 16px;margin-bottom:18px;font-size:14px}.flash{background:var(--primary-soft);border:1px solid #cfe0d4;color:var(--primary-dark);border-radius:10px;padding:10px 14px;margin-bottom:12px}.error,.flash{font-size:14px}.error{color:var(--urgent);margin-top:8px}@media print{.no-print,.topbar{display:none!important}body{background:#fff}}