:root{--plym-black: #1a1c20;--plym-orange: #f26a1b;--plym-sky: #35b6e9;--plym-magenta: #e8336e;--plym-white: #fafafa;--status-scheduled: var(--plym-sky);--status-in-progress: var(--plym-orange);--status-completed: #22c55e;--status-invoiced: #9ca3af;--status-cancelled: #6b7280;--bg: #f4f5f7;--surface: #ffffff;--text: #1a1c20;--text-muted: #6b7280;--radius: 10px;--shadow: 0 1px 3px rgb(0 0 0 / .12);--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}.plym-header{display:flex;align-items:center;justify-content:space-between;background:var(--plym-black);color:var(--plym-white);padding:.75rem 1rem}.plym-wordmark{display:flex;align-items:baseline;gap:.6rem}.plym-wordmark strong{font-size:1.4rem;letter-spacing:.05em;color:var(--plym-white);border-left:6px solid var(--plym-orange);padding-left:.6rem}.plym-wordmark span{font-size:.8rem;color:var(--plym-sky)}.plym-main{padding:1rem;max-width:1400px;margin:0 auto}.plym-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.plym-modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:1rem}.plym-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.plym-modal-head h3{margin:0}.plym-modal-close{border:none;background:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--text-muted)}.plym-nav{display:flex;gap:.25rem;padding:.25rem 1rem 0;background:var(--plym-black);overflow-x:auto}.plym-nav a{color:var(--plym-white);text-decoration:none;padding:.4rem .7rem;border-radius:6px 6px 0 0;opacity:.75;white-space:nowrap}.plym-nav a.active{background:var(--bg);color:var(--text);opacity:1}.plym-header-right{display:flex;gap:.5rem;align-items:center}.board-toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.board-range{font-weight:600;text-transform:capitalize}.board-error,.form-error{color:var(--plym-magenta)}.board-scroll{overflow-x:auto}.board-grid{display:grid;gap:2px;min-width:900px}@media(max-width:700px){.board-grid{min-width:0}}.board-corner,.board-day,.board-rowlabel,.board-cell{background:var(--surface);padding:.4rem}.board-day{font-weight:600;text-transform:capitalize}.board-day.is-today{color:var(--plym-orange)}.board-rowlabel{font-weight:600}.board-cell{min-height:64px;cursor:pointer;display:flex;flex-direction:column;gap:.35rem}.job-card{border-left:4px solid;border-radius:6px;background:var(--bg);padding:.35rem .5rem;box-shadow:var(--shadow);cursor:pointer;font-size:.85rem;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.job-card.status-scheduled{border-color:var(--status-scheduled)}.job-card.status-in_progress{border-color:var(--status-in-progress)}.job-card.status-completed{border-color:var(--status-completed)}.job-card.status-invoiced{border-color:var(--status-invoiced);color:var(--text-muted)}.job-card.status-cancelled{border-color:var(--status-cancelled)}.job-card.status-cancelled .job-prop,.job-card.status-cancelled .job-services{text-decoration:line-through}.job-card-top{display:flex;justify-content:space-between;align-items:center}.job-wo{font-weight:700}.job-menu-btn{border:none;background:none;cursor:pointer;font-size:1rem;padding:0 .2rem}.job-prop{font-weight:600}.job-services,.job-unit{color:var(--text-muted)}.card-menu{display:flex;flex-direction:column;gap:.4rem}.card-menu button{text-align:left;padding:.6rem .7rem;border:1px solid #e5e7eb;background:var(--surface);border-radius:6px;cursor:pointer;font-size:1rem}.form-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.6rem}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.check-row{display:flex;gap:.5rem;align-items:center;padding:.25rem 0}.crud-toolbar{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.crud-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius)}.crud-table th,.crud-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid #e5e7eb}.crud-table tr.archived{opacity:.55}.crud-scroll{overflow-x:auto}
