:root{--brand-navy: #024181;--brand-royal: #10539e;--brand-vibrant: #3280d4;--brand-tint: #e5f0fb;--bg: #f3f7fc;--bg-2: #e9f0f9;--bg-3: #d6e2f1;--surface: #ffffff;--surface-2: #f3f7fc;--line: #cfdceb;--line-2: #aec1d8;--text: #024181;--text-2: #2e527e;--text-3: #6b83a2;--text-4: #94a8c0;--accent: #10539e;--accent-2: #1565b5;--info: #3280d4;--d1: #dc2626;--d1-bg: #fef2f2;--d2: #f97316;--d2-bg: #fff7ed;--d3: #eab308;--d3-bg: #fefce8;--d4: #84cc16;--d4-bg: #f7fee7;--d5: #64748b;--d5-bg: #f1f5f9;--done: #10b981;--danger: #ef4444;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "SF Mono", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--brand-tint: #0e2e58;--bg: #02224a;--bg-2: #0a3068;--bg-3: #14437f;--surface: #0a3068;--surface-2: #133e78;--line: #1e4a85;--line-2: #2d5fa0;--text: #e8f0fb;--text-2: #b8cdec;--text-3: #7e97bf;--text-4: #5c7799;--accent: #3280d4;--accent-2: #4892e0;--info: #3280d4;--d1: #ef4444;--d1-bg: #450a0a;--d2: #fb923c;--d2-bg: #431407;--d3: #eab308;--d3-bg: #422006;--d4: #a3e635;--d4-bg: #1a2e05;--d5: #94a3b8;--d5-bg: #1e293b;--done: #34d399;--danger: #f87171}}:root[data-theme=light]{--brand-tint: #e5f0fb;--bg: #f3f7fc;--bg-2: #e9f0f9;--bg-3: #d6e2f1;--surface: #ffffff;--surface-2: #f3f7fc;--line: #cfdceb;--line-2: #aec1d8;--text: #024181;--text-2: #2e527e;--text-3: #6b83a2;--text-4: #94a8c0;--accent: #10539e;--accent-2: #1565b5;--info: #3280d4;--d1: #dc2626;--d1-bg: #fef2f2;--d2: #f97316;--d2-bg: #fff7ed;--d3: #eab308;--d3-bg: #fefce8;--d4: #84cc16;--d4-bg: #f7fee7;--d5: #64748b;--d5-bg: #f1f5f9;--done: #10b981;--danger: #ef4444}:root[data-theme=dark]{--brand-tint: #0e2e58;--bg: #02224a;--bg-2: #0a3068;--bg-3: #14437f;--surface: #0a3068;--surface-2: #133e78;--line: #1e4a85;--line-2: #2d5fa0;--text: #e8f0fb;--text-2: #b8cdec;--text-3: #7e97bf;--text-4: #5c7799;--accent: #3280d4;--accent-2: #4892e0;--info: #3280d4;--d1: #ef4444;--d1-bg: #450a0a;--d2: #fb923c;--d2-bg: #431407;--d3: #eab308;--d3-bg: #422006;--d4: #a3e635;--d4-bg: #1a2e05;--d5: #94a3b8;--d5-bg: #1e293b;--done: #34d399;--danger: #f87171}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.5;padding-bottom:env(safe-area-inset-bottom);padding-top:env(safe-area-inset-top)}button,input,select,textarea{color:inherit;font:inherit}button{min-height:36px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text);cursor:pointer;font-weight:500;padding:8px 12px;transition:background .15s,border-color .15s,transform .08s}button:hover{background:var(--surface-2);border-color:var(--line-2)}button:active{transform:scale(.98)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}button.danger,.danger{color:var(--danger)}button.icon{align-items:center;display:inline-flex;flex:0 0 auto;height:32px;justify-content:center;min-height:32px;padding:0;width:32px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);padding:9px 12px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}textarea{min-height:92px;resize:vertical}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}.app{margin:0 auto;max-width:1400px;min-height:100vh;padding:12px}.install-banner{align-items:center;background:var(--accent);border-radius:var(--r-md);color:#fff;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:10px 14px}.install-banner span{flex:1 1 220px;font-size:13px}.install-banner button{background:#ffffff2e;border-color:#fff6;color:#fff;min-height:28px;padding:4px 10px}.install-banner .install-dismiss{border-color:transparent;width:28px}.topbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;padding:8px 4px 14px}.brand{align-items:center;display:flex;gap:10px;font-size:18px;font-weight:700;min-width:0;white-space:nowrap}.brand-mark{align-items:center;background:var(--brand-navy);border-radius:8px;display:inline-flex;flex:0 0 auto;height:36px;justify-content:center;overflow:hidden;width:36px}.brand-mark svg{display:block;height:26px;width:26px}.brand-mark polygon{fill:var(--brand-vibrant)}.brand-version{color:var(--text-3);font-size:11px;font-weight:400}.topbar-spacer{flex:1 1 40px}.user-chip{align-items:center;display:inline-flex;gap:8px;min-width:0;padding:6px 10px;border-radius:999px;font-size:12px}.user-avatar,.contact-avatar{align-items:center;background:var(--accent);border-radius:50%;color:#fff;display:inline-flex;flex:0 0 auto;font-size:10px;font-weight:700;height:24px;justify-content:center;width:24px}.role-tag{background:var(--bg-3);border-radius:4px;color:var(--text-2);display:inline-block;font-size:10px;font-weight:700;letter-spacing:.04em;padding:1px 6px;text-transform:uppercase}.role-tag.admin{background:var(--accent);color:#fff}.sync-bar,.dincon-legend{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:10px 14px}.sync-icon{align-items:center;background:#0061ff;border-radius:6px;color:#fff;display:inline-flex;flex:0 0 auto;font-size:11px;font-weight:700;height:26px;justify-content:center;width:26px}.sync-info{flex:1 1 180px;min-width:0}.sync-title{font-size:13px;font-weight:700}.sync-status{align-items:center;color:var(--text-3);display:flex;font-size:12px;gap:6px;margin-top:2px}.dot{background:var(--text-4);border-radius:50%;display:inline-block;flex:0 0 auto;height:6px;width:6px}.dincon-legend{font-size:11px;gap:6px;padding:8px 12px}.dincon-legend strong{color:var(--text-3);font-weight:700;margin-right:4px}.pill{align-items:center;background:var(--bg-3);border-radius:999px;color:var(--text-2);display:inline-flex;font-size:11px;font-weight:700;gap:4px;line-height:1.4;padding:2px 8px}.pill-d1,.badge-d1{background:var(--d1);color:#fff}.pill-d2,.badge-d2{background:var(--d2);color:#fff}.pill-d3,.badge-d3{background:var(--d3);color:#422006}.pill-d4,.badge-d4{background:var(--d4);color:#1a2e05}.pill-d5,.badge-d5{background:var(--d5);color:#fff}.pill-assignee{background:#3280d426;border:1px solid rgba(50,128,212,.3);color:var(--info)}.pill-area,.pill-due{background:var(--bg-3);border:1px solid var(--line);color:var(--text-2)}.pill-due.overdue,.mini-due.overdue{background:var(--d1-bg);border-color:#dc262666;color:var(--d1);font-weight:800}.pill-due.today,.mini-due.today{background:var(--d2-bg);border-color:#f9731666;color:var(--d2);font-weight:800}.pill-due.tomorrow,.mini-due.tomorrow,.pill-due.week,.mini-due.week{background:var(--d3-bg);border-color:#eab30866;color:var(--d3)}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.toolbar input[type=search]{flex:1 1 220px}.toolbar select{flex:0 1 150px;width:auto}.toolbar button{flex:0 0 auto}.due-soon-bar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:14px;overflow:hidden}.due-soon-bar.has-overdue{border-color:var(--d1);box-shadow:0 0 0 1px var(--d1) inset}.due-soon-bar-head{align-items:center;background:transparent;border:none;border-radius:0;display:flex;gap:10px;min-height:48px;padding:10px 14px;text-align:left;width:100%}.due-soon-icon{align-items:center;background:var(--d2);border-radius:50%;color:#fff;display:inline-flex;flex:0 0 auto;font-size:14px;font-weight:800;height:28px;justify-content:center;width:28px}.due-soon-bar.has-overdue .due-soon-icon{animation:due-soon-pulse 2s ease-in-out infinite;background:var(--d1)}@keyframes due-soon-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.due-soon-summary{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:6px;min-width:0}.due-soon-chip{border:1px solid transparent;border-radius:999px;display:inline-flex;font-size:11px;font-weight:700;padding:2px 8px}.due-soon-chip.overdue{background:var(--d1-bg);border-color:var(--d1);color:var(--d1)}.due-soon-chip.today{background:var(--d2-bg);border-color:var(--d2);color:var(--d2)}.due-soon-chip.tomorrow{background:var(--d3-bg);border-color:var(--d3);color:var(--d3)}.due-soon-chip.week{background:var(--bg-3);color:var(--text-2)}.due-soon-chev{color:var(--text-3);flex:0 0 auto;font-size:18px;transition:transform .15s}.due-soon-bar.expanded .due-soon-chev{transform:rotate(90deg)}.due-soon-list{border-top:1px solid var(--line);max-height:320px;overflow-y:auto}.due-soon-group-head{background:var(--bg-2);color:var(--text-3);font-size:10px;font-weight:800;letter-spacing:.05em;padding:8px 14px 4px;text-transform:uppercase}.due-soon-job{align-items:center;border-top:1px solid var(--line);display:flex;gap:10px;padding:8px 14px}.due-soon-job-title{flex:1;font-size:12px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.due-soon-job-meta{align-items:center;color:var(--text-3);display:flex;flex:0 0 auto;font-size:11px;gap:6px}.due-soon-job-dept,.archive-row-dept,.contact-source{background:var(--bg-3);border-radius:4px;color:var(--text-2);font-size:10px;font-weight:700;padding:1px 6px;white-space:nowrap}.dept-tabs{display:none;gap:6px;margin-bottom:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.dept-tabs::-webkit-scrollbar{display:none}.dept-tab{align-items:center;border-radius:999px;color:var(--text-2);display:inline-flex;flex:0 0 auto;gap:4px;padding:8px 14px;white-space:nowrap}.dept-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.dept-tab .count{background:var(--bg-2);border-radius:999px;color:var(--text-3);font-size:11px;padding:1px 6px}.dept-tab.active .count{background:#ffffff29;color:#fff}.columns{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:8px;min-height:140px;min-width:0;padding:12px}.col-head{border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px;margin-bottom:4px;padding:2px 4px 8px}.col-title-row{align-items:center;display:flex;gap:8px;min-width:0;width:100%}.col-name{flex:1 1 auto;font-size:14px;font-weight:700;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-count{background:var(--bg-2);border-radius:999px;color:var(--text-3);flex:0 0 auto;font-size:11px;font-weight:700;padding:2px 8px}.col-add{margin-left:auto}.col-progress{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);font-size:11px;padding:6px 8px}.col-progress-stats{align-items:baseline;color:var(--text-3);display:flex;justify-content:space-between;margin-bottom:4px;min-width:0}.col-progress-stats strong{color:var(--text);font-size:12px}.col-progress-bar{background:var(--bg-3);border-radius:999px;height:6px;overflow:hidden}.col-progress-fill{background:var(--done);border-radius:999px;display:block;height:100%}.col-progress-fill.warning{background:var(--accent)}.col-progress-fill.danger{background:var(--d1)}.jobs{display:flex;flex-direction:column;gap:8px}.job{background:var(--bg-2);border:1px solid var(--line);border-left:4px solid var(--text-4);border-radius:var(--r-md);overflow:hidden}.job.lvl-1{border-left-color:var(--d1)}.job.lvl-2{border-left-color:var(--d2)}.job.lvl-3{border-left-color:var(--d3)}.job.lvl-4{border-left-color:var(--d4)}.job.lvl-5{border-left-color:var(--d5)}.job-head{align-items:center;background:transparent;border:none;border-radius:0;display:flex;gap:6px;min-height:36px;padding:8px 10px;text-align:left;width:100%}.badge{align-items:center;border-radius:4px;display:inline-flex;flex:0 0 auto;font-size:10px;font-weight:800;height:20px;justify-content:center;width:26px}.job-title{flex:1 1 auto;font-size:13px;font-weight:600;min-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-assignee,.mini-due{border:1px solid var(--line);border-radius:4px;flex:0 0 auto;font-size:10px;font-weight:700;max-width:66px;overflow:hidden;padding:1px 6px;text-overflow:ellipsis;white-space:nowrap}.mini-assignee{background:#3280d426;border-color:#3280d44d;color:var(--info)}.mini-due{background:var(--bg-3);color:var(--text-2)}.chev{color:var(--text-3);flex:0 0 auto;font-size:16px;line-height:1;transition:transform .15s}.job.expanded .chev{transform:rotate(90deg)}.job-body{border-top:1px solid var(--line);display:none;flex-direction:column;gap:8px;padding:4px 10px 10px}.job.expanded .job-body{display:flex}.meta-row,.actions,.archive-row-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.grower-card,.contacts-card,.notes{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}.grower-card-name{color:var(--text);font-size:12px;font-weight:700;margin-bottom:2px}.grower-card-contact{color:var(--text-3);display:flex;flex-wrap:wrap;font-size:11px;gap:8px}.contacts-card{display:flex;flex-direction:column;font-size:12px;gap:3px}.contacts-label{color:var(--text-3);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.contact-line{color:var(--text-2)}.contact-line strong{color:var(--text);margin-right:6px}.job-progress{margin:0}.notes{color:var(--text-2);font-size:12px;max-height:120px;overflow-y:auto;white-space:pre-wrap}.time{color:var(--text-4);font-size:10px}.actions button{font-size:11px;min-height:28px;padding:5px 9px}.quick-panels{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 0 4px}.shortcut-card{align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);display:flex;flex-direction:column;gap:2px;min-height:58px;padding:10px 12px;text-align:left}.shortcut-card span{color:var(--text-3);font-size:12px}.modal-bg{align-items:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:100}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:12px;max-height:90vh;max-width:480px;overflow-y:auto;padding:20px;width:100%}.modal-wide{max-width:720px}.modal-title-row,.modal-head-row{align-items:center;display:flex;gap:10px}.modal-title-row h2{flex:1;font-size:18px;font-weight:700;margin:0}.modal h3{color:var(--text-2);font-size:15px;margin:0 0 8px}.modal p,.modal-note{color:var(--text-3);font-size:12px;margin:0}.modal-head-row p{flex:1}.field{display:flex;flex-direction:column;gap:4px}.field label{color:var(--text-3);font-size:12px;font-weight:700}.form-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.modal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:4px}.contact-directory,.archive-list,.users-list{display:flex;flex-direction:column;gap:6px}.contact-directory,.archive-list{border:1px solid var(--line);border-radius:var(--r-sm);max-height:54vh;overflow-y:auto;padding:4px}.contact-row,.archive-row,.user-row,.setting-row{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}.contact-row,.user-row,.setting-row{align-items:center;display:flex;gap:10px}.contact-avatar{height:32px;width:32px}.contact-info,.user-row-info{display:flex;flex:1;flex-direction:column;min-width:0}.contact-name,.user-row-name{color:var(--text);font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-meta,.user-row-meta{color:var(--text-3);display:flex;flex-wrap:wrap;font-size:11px;gap:8px}.archive-row{display:flex;flex-direction:column;gap:6px}.archive-row-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.archive-row-title{flex:1;font-size:13px;font-weight:700;min-width:160px}.archive-row-meta{color:var(--text-3);display:flex;flex-wrap:wrap;font-size:11px;gap:4px}.archive-row-notes{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text-2);font-size:12px;padding:6px 8px}.settings-section{border-top:1px solid var(--line);padding-top:12px}.settings-section:first-of-type{border-top:none;padding-top:0}.setting-row{gap:14px}.setting-row>div:first-child{display:flex;flex:1;flex-direction:column;min-width:0}.setting-row span{color:var(--text-3);font-size:12px}.toggle-switch{display:inline-block;flex:0 0 auto;height:24px;position:relative;width:44px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background:var(--bg-3);border:1px solid var(--line-2);border-radius:24px;cursor:pointer;inset:0;position:absolute;transition:background .15s,border-color .15s}.toggle-slider:before{background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;content:"";height:18px;left:2px;position:absolute;top:2px;transition:transform .15s;width:18px}.toggle-switch input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.fab{align-items:center;background:var(--accent);border:none;border-radius:50%;bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:0 4px 16px #0000004d;color:#fff;display:none;font-size:28px;font-weight:300;height:56px;justify-content:center;line-height:1;position:fixed;right:20px;width:56px;z-index:50}@media(min-width:768px){.app{padding:20px}}@media(max-width:900px){.toolbar input[type=search],.toolbar select,.toolbar button{flex:1 1 180px}}@media(max-width:767px){.desktop-add{display:none}.dept-tabs{display:flex}.columns{gap:0;grid-template-columns:1fr}.col.hidden-mobile,.col-head{display:none}.col.has-progress:not(.hidden-mobile) .col-head{border-bottom:none;display:flex;margin-bottom:4px;padding:4px 0 8px}.col.has-progress:not(.hidden-mobile) .col-title-row{display:none}.quick-panels{grid-template-columns:1fr;margin-bottom:86px}.fab{display:inline-flex}}@media(max-width:560px){.app{padding:8px}.brand{width:100%}.sync-bar{align-items:stretch}.sync-bar button{width:100%}.toolbar{align-items:stretch}.toolbar input[type=search],.toolbar select,.toolbar button{flex-basis:100%;width:100%}.due-soon-job{align-items:flex-start}.due-soon-job-meta{align-items:flex-end;flex-direction:column}.job-head{align-items:flex-start;flex-wrap:wrap}.job-title{flex-basis:calc(100% - 42px);white-space:normal}.form-grid,.quick-panels{grid-template-columns:1fr}.modal{max-height:calc(100vh - 24px);padding:14px}.modal-head-row,.setting-row{align-items:stretch;flex-direction:column}}
