:root{--base:#f6f7fb;--mantle:#eef1f7;--surface:#fdfdff;--border:#dfe4ee;--text:#1e293b;--subtext:#64748b;--accent:#346bcd;--accent-hover:#5c85dd;--shadow:#1e293b14;--status-good:#40a02b;--status-warn:#df8e1d;--status-neutral:#9ca0b0;--status-danger:#d20f39}[data-theme=dark]{--base:#0b1220;--mantle:#0f172a;--surface:#1e2a45;--border:#334467;--text:#dbe4f3;--subtext:#93a5c4;--accent:#38bdf8;--accent-hover:#7dd3fc;--shadow:#00000059;--status-good:#40a02b;--status-warn:#df8e1d;--status-neutral:#6c7086;--status-danger:#d20f39}[data-palette=sunset]{--base:#fdf3ec;--mantle:#f7e9de;--surface:#fffcfa;--border:#f0ddd0;--text:#4a2c22;--subtext:#8a6b5c;--accent:#f0653d;--accent-hover:#f68a5c;--shadow:#78350f14}[data-palette=sunset][data-theme=dark]{--base:#1a1822;--mantle:#15131c;--surface:#292735;--border:#3d3a4a;--text:#f0e6ea;--subtext:#b3a8b5;--accent:#f2597a;--accent-hover:#e4754c;--shadow:#00000073}*{box-sizing:border-box}body{background:var(--base);color:var(--text);overflow-wrap:break-word;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5}h1{margin:0;font-size:1.5rem;font-weight:600}h2{color:var(--text);margin:0 0 1rem;font-size:1.15rem;font-weight:600}.app-header{background:var(--mantle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}nav{gap:.5rem;padding:1rem 1.5rem 0;display:flex}nav button{color:var(--subtext);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .15s}nav button:hover{color:var(--text);background:var(--mantle)}nav button.active{color:var(--accent);background:var(--surface);border-color:var(--border)}.content{padding:1.5rem}button{font-family:inherit}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:500;transition:background .15s}.btn:hover{background:var(--accent-hover)}table{border-collapse:collapse;background:var(--surface);width:100%;box-shadow:0 1px 3px var(--shadow);border-radius:10px;overflow:hidden}thead{background:var(--mantle)}th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--subtext);padding:.75rem 1rem;font-size:.8rem;font-weight:600}td{border-top:1px solid var(--border);padding:.75rem 1rem}tbody tr:hover,.picker-option:hover{background:var(--mantle)}.row-edit-hint{opacity:0;color:var(--subtext);font-size:.8em;transition:opacity .15s}.editable-row:hover .row-edit-hint,.btn:hover .row-edit-hint{opacity:1}form{background:var(--surface);border:1px solid var(--border);max-width:320px;box-shadow:0 4px 12px var(--shadow);border-radius:12px;margin:4rem auto;padding:2rem}form input{border:1px solid var(--border);background:var(--base);width:100%;color:var(--text);border-radius:8px;margin:.4rem 0;padding:.6rem .75rem;font-size:.95rem}form button{margin-top:1rem}.followup-queue-section{margin-bottom:2rem}.followup-queue-section h3{text-transform:uppercase;letter-spacing:.04em;color:var(--subtext);align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:700;display:flex}.followup-count{background:var(--mantle);min-width:1.4em;color:var(--subtext);border-radius:999px;justify-content:center;padding:.05em .45em;font-size:.85em;display:inline-flex}.followup-queue-today h3{color:var(--accent)}.followup-queue-today h3 .followup-count{background:var(--accent);color:#fff}.followup-queue-overdue h3{color:var(--status-danger)}.followup-queue-completed{opacity:.85}.followup-empty{color:var(--subtext);font-size:.9rem}.followup-card{background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 3px var(--shadow);cursor:pointer;border-radius:10px;margin-bottom:.75rem;padding:1rem 1.25rem}.followup-card:hover{border-color:var(--accent)}.followup-card-selected{border-color:var(--accent);background:var(--mantle);border-left-width:4px}.followup-card-client-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.followup-card-client{font-size:1.02rem;font-weight:600}.followup-card-date{color:var(--subtext);white-space:nowrap;font-size:.85rem}.overdue-chip{color:var(--status-danger);white-space:nowrap;font-size:.8rem;font-weight:600}.followup-type-chip{text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--border);color:var(--subtext);white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.followup-type-prospect{color:var(--accent);border-color:var(--accent)}.followup-card-reason{margin:.35rem 0 .5rem;font-size:1rem}.followup-card-contact{color:var(--subtext);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.25rem;font-size:.88rem;display:flex}.followup-card-meta{color:var(--subtext);font-size:.85rem}.followup-card-actions{gap:.5rem;margin-top:.75rem;display:flex}.btn-outline{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:.5rem 1rem;font-weight:500}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.btn-link{color:var(--subtext);cursor:pointer;background:0 0;border:none;padding:.5rem .25rem;font-weight:500;text-decoration:underline}.btn-link:hover{color:var(--text)}.contact-link{color:var(--accent);text-decoration:none}.contact-link:hover{text-decoration:underline}.quick-complete-panel{border-top:1px solid var(--border);cursor:default;flex-direction:column;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.quick-complete-panel textarea,.quick-complete-panel input{border:1px solid var(--border);background:var(--base);width:100%;color:var(--text);resize:vertical;border-radius:8px;padding:.5rem .65rem;font-family:inherit}.quick-complete-actions{align-items:center;gap:.5rem;display:flex}.note-card{border-top:1px solid var(--border);padding:.75rem 0}.note-card:first-child{border-top:none}.note-card-meta{color:var(--subtext);margin-bottom:.25rem;font-size:.8rem}.highlight-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:1.25rem;padding:1rem 1.25rem}.highlight-card-label{text-transform:uppercase;letter-spacing:.04em;color:var(--subtext);margin-bottom:.35rem;font-size:.75rem}.highlight-card-name{margin-bottom:.35rem;font-size:1.1rem;font-weight:600}.list-row{border-top:1px solid var(--border);padding:.6rem 0}.list-row:first-child{border-top:none}.list-row-header{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.list-row-title{font-weight:600}.list-row-meta{color:var(--subtext);font-size:.85rem}.dashboard-greeting{margin-bottom:1.75rem}.dashboard-greeting h2{margin-bottom:.25rem}.dashboard-greeting p{color:var(--subtext);margin:0}.dashboard-section{margin-bottom:2rem}.dashboard-section>h3{text-transform:uppercase;letter-spacing:.04em;color:var(--subtext);align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:700;display:flex}.dashboard-section-urgent>h3{color:var(--status-danger)}.dashboard-section-warn>h3{color:var(--status-warn)}.tone-warn-text{color:var(--status-warn);font-weight:600}.placement-save-bar{z-index:5;background:var(--mantle);border:1px solid var(--status-warn);border-radius:8px;align-items:center;gap:.6rem;margin-bottom:.35rem;padding:.5rem .75rem;font-size:.9rem;font-weight:600;display:flex;position:sticky;top:0}.attention-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--status-neutral);box-shadow:0 1px 3px var(--shadow);border-radius:10px;margin-bottom:.75rem;padding:1rem 1.25rem}.attention-card.tone-urgent{border-left-color:var(--status-danger)}.attention-card.tone-warn{border-left-color:var(--status-warn)}.attention-card-title{text-transform:uppercase;letter-spacing:.04em;color:var(--subtext);margin-bottom:.25rem;font-size:.75rem}.attention-card-subject{font-size:1.02rem;font-weight:600}.attention-card-meta{color:var(--subtext);margin:.25rem 0;font-size:.85rem}.attention-card-body{margin-bottom:.75rem}.attention-card-actions{gap:.5rem;display:flex}.today-job-row{border-top:1px solid var(--border);cursor:pointer;align-items:baseline;gap:1rem;padding:.6rem 0;display:flex}.today-job-row:first-child{border-top:none}.today-job-row:hover .today-job-client{color:var(--accent)}.today-job-time{min-width:5.5rem;font-weight:600}.today-job-main{flex:1;min-width:0}.today-job-client{font-weight:600}.today-job-positions{color:var(--subtext);font-size:.85rem}.week-grid{grid-template-columns:repeat(7,1fr);gap:.75rem;display:grid}.week-day{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-height:90px;padding:.75rem}.week-day.is-today{border-color:var(--accent)}.week-day-label{text-transform:uppercase;color:var(--subtext);letter-spacing:.03em;font-size:.75rem}.week-day-date{color:var(--subtext);margin-bottom:.4rem;font-size:.8rem}.week-day-count{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.week-day-jobs{flex-direction:column;gap:.25rem;margin-top:.5rem;display:flex}.week-day-job{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.week-day-job:hover{color:var(--accent)}.week-day-more{color:var(--subtext);font-size:.75rem}@media (width<=900px){.week-grid{grid-template-columns:repeat(2,1fr)}}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);box-shadow:0 8px 24px var(--shadow);border-radius:12px;width:100%;max-width:380px;padding:1.5rem}.notes-columns{grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:.75rem;display:grid}.notes-column h4{margin-bottom:.5rem}@media (width<=720px){.notes-columns{grid-template-columns:1fr}}.form-columns{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}.form-columns h3{margin:0 0 .5rem;font-size:.95rem}@media (width<=720px){.form-columns{grid-template-columns:1fr}}.split-view{flex-wrap:nowrap;align-items:flex-start;gap:1.5rem;display:flex;overflow-x:auto}.split-list-panel{flex:3 28rem;min-width:0}.split-detail-panel{background:var(--surface);border:1px solid var(--border);min-width:34rem;box-shadow:0 1px 3px var(--shadow);border-radius:10px;flex:2 34rem;padding:1.25rem 1.5rem;overflow-x:auto}.split-empty{color:var(--subtext);text-align:center;padding:3rem 1rem;font-style:italic}.jo-pills{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.jo-pill{background:var(--surface);border:1px solid var(--border);color:var(--subtext);cursor:pointer;border-radius:999px;align-items:center;gap:.45em;padding:.4rem .9rem;font-family:inherit;font-size:.85rem;font-weight:500;display:inline-flex}.jo-pill:hover{border-color:var(--accent);color:var(--text)}.jo-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.jo-pill-count{background:var(--mantle);color:inherit;border-radius:999px;padding:.05em .55em;font-size:.85em}.jo-pill.active .jo-pill-count{background:#ffffff40}.position-chip-list{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.position-chip{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:center;gap:.35em;padding:.25rem .7rem;font-size:.85rem;font-weight:500;display:inline-flex}.position-chip-remove{color:var(--subtext);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:1em;line-height:1}.position-chip-remove:hover{color:var(--text)}.jo-section-header{text-transform:uppercase;letter-spacing:.04em;color:var(--subtext);margin:1.25rem 0 .6rem;font-size:.8rem;font-weight:700}.jo-section-header:first-child{margin-top:0}.jo-row{background:var(--surface);border:1px solid var(--border);cursor:pointer;box-shadow:0 1px 3px var(--shadow);border-radius:10px;align-items:flex-start;gap:.85rem;margin-bottom:.6rem;padding:.85rem 1rem;transition:border-color .15s;display:flex}.jo-row:hover{border-color:var(--accent)}.jo-row-selected{border-color:var(--accent);background:var(--mantle);border-left-width:4px}.jo-icon-square{background:var(--accent);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.jo-row-main{flex:1;min-width:0}.jo-row-top{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.jo-row-title{color:var(--text);font-size:1.02rem;font-weight:600}.jo-row-number{color:var(--subtext);font-size:.8rem}.jo-row-meta{color:var(--subtext);flex-wrap:wrap;gap:1rem;margin-top:.35rem;font-size:.85rem;display:flex}.jo-row-meta span{align-items:center;gap:.35em;display:inline-flex}.jo-row-meta svg{opacity:.8;flex-shrink:0}.jo-row-fill{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.3rem;width:9rem;padding-top:.15rem;display:flex}.jo-row-nopos{color:var(--subtext);font-size:.8rem;font-style:italic}.fill-bar{flex-direction:column;align-items:flex-end;gap:.25rem;width:100%;display:flex}.fill-bar-track{background:var(--mantle);border-radius:999px;width:100%;height:6px;overflow:hidden}.fill-bar-fill{border-radius:999px;height:100%}.fill-bar-fill.tone-good{background:var(--status-good)}.fill-bar-fill.tone-warn{background:var(--status-warn)}.fill-bar-fill.tone-danger{background:var(--status-danger)}.fill-bar-label{color:var(--subtext);white-space:nowrap;font-size:.78rem}.list-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.pt-group{margin:.85rem 0}.pt-group-header{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--subtext);border-radius:8px;align-items:center;gap:.6rem;padding:.6rem .75rem;display:flex}.pt-group-header:hover{border-color:var(--accent)}.pt-group-title{color:var(--text);font-weight:600}.pt-group-count{color:var(--subtext);font-weight:400}.pt-group-header .fill-bar{flex-shrink:0;width:9rem;margin-left:auto}.jo-tabs{border-bottom:1px solid var(--border);gap:.5rem;margin:.75rem 0 1rem;padding-bottom:.75rem;display:flex}.jo-tab-panel-empty{color:var(--subtext);text-align:center;padding:2rem 1rem;font-style:italic}.confetti-burst{pointer-events:none;z-index:2000;position:fixed;inset:0;overflow:hidden}.confetti-streamer{border-radius:2px;width:.4rem;height:1.6rem;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards;position:absolute;top:-5%}@keyframes confetti-fall{0%{opacity:1;top:-5%}to{opacity:.4;top:105%}}
