:root{--text:#24292f;--bg:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#e6edf3;--bg:#0d1117}}body{margin:0}main{max-width:900px;margin:2rem auto;padding:0 1rem}@media (width<=600px){main{margin:1rem auto}}h1{margin-bottom:1rem}button{font:inherit;color:#fff;cursor:pointer;background:#333;border:1px solid #333;border-radius:4px;min-height:44px;padding:.5rem 1.25rem}button:disabled{opacity:.6;cursor:not-allowed}.error{color:#b00020}td .error{margin-top:.25rem;font-size:.85rem}td select{font:inherit;padding:.25rem}@media (width<=900px){td select{min-height:44px;padding:.5rem .4rem}}.success{color:#1a7f37}.button-danger{background:#b00020;border-color:#b00020}.button-danger:hover:not(:disabled){background:#8f001a;border-color:#8f001a}.danger-zone{border:1px solid #b00020;border-radius:4px;margin-top:.5rem;padding:1rem}nav{border-bottom:1px solid #ccc;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:1rem;display:flex}nav a{color:inherit;padding:.25rem 0;text-decoration:none}.app-footer{border-top:1px solid #ccc;justify-content:center;gap:1.5rem;margin-top:2rem;padding:1.5rem 1rem;font-size:.85rem;display:flex}.app-footer a{color:#555}.legal-page{max-width:700px}.legal-page h2{margin-top:1.5rem}.legal-links{font-size:.9rem}@media print{.app-footer{display:none!important}}nav a.active{font-weight:700;text-decoration:underline}nav .nav-logout{color:inherit;margin-left:auto;text-decoration:none}@media (width<=900px){nav a,nav .nav-logout{align-items:center;min-height:44px;padding:0 .15rem;display:flex}}@media (width<=600px){nav{gap:.25rem 1.25rem;padding:.5rem 1rem;font-size:.95rem}}form{flex-direction:column;gap:1rem;max-width:480px;display:flex}form.form-wide{max-width:700px}.field{flex-direction:column;gap:.25rem;display:flex}.field label{font-weight:600}.field input,.field textarea,.field select{font:inherit;border:1px solid #ccc;border-radius:4px;min-height:44px;padding:.5rem}form button{align-self:flex-start}.field-checkbox{flex-direction:row;align-items:center;gap:.6rem}.field-checkbox label{font-weight:400}.field-checkbox input[type=checkbox]{appearance:none;cursor:pointer;background:0 0;border:none;flex-shrink:0;width:44px;height:44px;margin:0;padding:0;position:relative}.field-checkbox input[type=checkbox]:before{content:"";box-sizing:border-box;background:#ccc;border:1px solid #999;border-radius:999px;width:40px;height:22px;transition:background .15s,border-color .15s;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.field-checkbox input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:50%;left:4px;transform:translateY(-50%);box-shadow:0 1px 2px #0000004d}.field-checkbox input[type=checkbox]:checked:before{background:#333;border-color:#333}.field-checkbox input[type=checkbox]:checked:after{transform:translate(18px,-50%)}.field-checkbox input[type=checkbox]:focus-visible:before{outline-offset:2px;outline:2px solid #333}.booking-confirmation{flex-direction:column;gap:1.5rem;max-width:480px;display:flex}.confirmation-summary,.confirmation-business{background:#fafafa;border:1px solid #ccc;border-radius:4px;padding:1rem}.confirmation-summary h2,.confirmation-business h2{margin:0 0 .5rem;font-size:1.1rem}.confirmation-summary p,.confirmation-business p{margin:.25rem 0}.confirmation-actions{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.button-link{color:#fff;background:#333;border:1px solid #333;border-radius:4px;justify-content:center;align-items:center;min-height:44px;padding:.5rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}.calendar-dropdown{position:relative}.calendar-dropdown-menu{z-index:10;background:#fff;border:1px solid #ccc;border-radius:4px;flex-direction:column;min-width:260px;display:flex;position:absolute;top:calc(100% + .35rem);left:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.calendar-dropdown-item{box-sizing:border-box;color:#333;border-bottom:1px solid #eee;min-height:44px;padding:.75rem 1rem;text-decoration:none;display:block}.calendar-dropdown-item:last-child{border-bottom:none}.calendar-dropdown-item:hover,.calendar-dropdown-item:focus-visible{background:#f5f5f5}.phone-input-group{align-items:stretch;display:flex}.phone-prefix{box-sizing:border-box;color:#333;white-space:nowrap;background:#f5f5f5;border:1px solid #ccc;border-right:none;border-radius:4px 0 0 4px;align-items:center;min-height:44px;padding:.5rem .6rem;font-weight:600;display:flex}.phone-input-group input{border-radius:0 4px 4px 0;flex:1;min-width:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.email-suggestions{flex-wrap:wrap;gap:.4rem;margin-top:.35rem;display:flex}.email-suggestion-button{color:#333;background:#fff;min-height:44px;padding:.35rem .75rem;font-size:.9rem}.photo-selection-summary{color:#666;margin:0;font-size:.9rem}.camera-support-note{color:#666;margin:0;font-size:.85rem}.date-picker{max-width:320px}.date-picker-toolbar{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.date-picker-toolbar button{padding:.4rem .75rem}.date-picker-month-label{font-weight:600}.date-picker-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.date-picker-weekday{text-align:center;color:#666;padding:.25rem 0;font-size:.75rem;font-weight:600}.date-picker-weekday.closed{color:#b00020}.date-picker-cell{aspect-ratio:1;color:#333;font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;justify-content:center;align-items:center;padding:0;display:flex}.date-picker-cell:hover:not(:disabled){background:#f5f5f5}.date-picker-cell.empty{cursor:default;background:0 0;border:none}.date-picker-cell.selected{color:#fff;background:#333;border-color:#333}.date-picker-cell:disabled{cursor:not-allowed;color:#bbb;background:#f5f5f5;border-color:#eee}.date-picker-cell.closed:disabled{color:#c99;background:repeating-linear-gradient(45deg,#f5f5f5,#f5f5f5 4px,#ececec 4px 8px)}.closed-day-message{color:#8a6d1f;background:#fdf6e3;border:1px solid #d4a72c;border-radius:4px;margin:0;padding:.6rem .8rem}@media (width<=500px){.date-picker-grid{gap:2px}}.photo-thumb-gallery{flex-wrap:wrap;gap:.35rem;display:flex}.photo-thumb{object-fit:cover;border:1px solid #ccc;border-radius:4px;width:48px;height:48px;display:block}.photo-thumb-loading,.photo-thumb-error{color:#666;background:#f5f5f5;border:1px solid #ccc;border-radius:4px;justify-content:center;align-items:center;width:48px;height:48px;font-size:.85rem;display:flex}.photo-thumb-error{color:#b00020;font-weight:700}.photo-none{color:#666}.secondary-button{color:#333;background:#fff}.cancel-confirm{flex-direction:column;gap:.75rem;width:100%;max-width:400px;display:flex}.cancel-confirm p{margin:0}.cancel-form-buttons,.slot-grid{flex-wrap:wrap;gap:.5rem;display:flex}.slot-button{color:#333;background:#fff}.slot-button.selected{color:#fff;background:#333}table{border-collapse:collapse;width:100%}@media (width<=900px){table{-webkit-overflow-scrolling:touch;max-width:100%;display:block;overflow-x:auto}}th,td{text-align:left;border:1px solid #ccc;padding:.5rem .75rem}th{background:#f5f5f5}tbody tr:nth-child(2n){background:#fafafa}.item-rows{flex-direction:column;gap:.5rem;display:flex}.item-row{grid-template-columns:2fr 1fr 1fr auto;gap:.5rem;display:grid}.item-row input{font:inherit;border:1px solid #ccc;border-radius:4px;min-width:0;min-height:44px;padding:.5rem}@media (width<=600px){.item-row{grid-template-columns:1fr}.item-row button{width:100%}}.invoice-preview{background:#f5f5f5;border-radius:4px;flex-direction:column;gap:.25rem;padding:.75rem 1rem;display:flex}.link-button{color:#333;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}@media (width<=900px){.link-button{align-items:center;min-height:44px;display:inline-flex}}.payment-section{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:1rem;display:flex}.payment-form{flex-direction:column;gap:.75rem;width:100%;max-width:400px;display:flex}.card-element-wrapper{background:#fff;border:1px solid #ccc;border-radius:4px;padding:.75rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:#fafafa;border:1px solid #ccc;border-radius:4px;padding:1rem}.stat-number{font-size:1.75rem;font-weight:700}.stat-label{color:#666;margin-top:.25rem}.leakage-section{background:#fafafa;border:1px solid #ccc;border-radius:4px;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;padding:1rem;display:flex}.leakage-delta{color:#666;margin-top:.25rem;font-size:.9rem}.leakage-delta.up{color:#b00020}.leakage-delta.down{color:#1a7f37}.leakage-breakdown{border-left:1px solid #ccc;gap:1.5rem;padding-left:1.5rem;display:flex}.follow-up-actions{flex-wrap:wrap;gap:.5rem;display:flex}.reminder-result{margin-top:.35rem;font-size:.85rem}.customer-detail{padding:.5rem 0 1rem}.customer-detail h3{margin:1.25rem 0 .5rem}.customer-detail .field{max-width:480px}.customer-detail textarea{font:inherit;border:1px solid #ccc;border-radius:4px;padding:.5rem}.hours-grid{flex-direction:column;gap:.5rem;max-width:560px;margin-bottom:1rem;display:flex}.hours-row{grid-template-columns:100px 90px 1fr auto 1fr;align-items:center;gap:.75rem;display:grid}.hours-day-label{font-weight:600}.hours-closed-toggle{align-items:center;gap:.4rem;font-weight:400;display:flex}.hours-row input[type=time]{font:inherit;border:1px solid #ccc;border-radius:4px;min-height:44px;padding:.4rem}@media (width<=900px){.hours-closed-toggle input[type=checkbox]{appearance:none;cursor:pointer;background:0 0;border:none;flex-shrink:0;width:44px;height:44px;margin:0;padding:0;position:relative}.hours-closed-toggle input[type=checkbox]:before{content:"";box-sizing:border-box;background:#ccc;border:1px solid #999;border-radius:999px;width:40px;height:22px;transition:background .15s,border-color .15s;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.hours-closed-toggle input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:50%;left:4px;transform:translateY(-50%);box-shadow:0 1px 2px #0000004d}.hours-closed-toggle input[type=checkbox]:checked:before{background:#333;border-color:#333}.hours-closed-toggle input[type=checkbox]:checked:after{transform:translate(18px,-50%)}.hours-closed-toggle input[type=checkbox]:focus-visible:before{outline-offset:2px;outline:2px solid #333}.hours-row{grid-template-columns:100px 120px 1fr auto 1fr}}@media (width<=560px){.hours-grid{max-width:100%}.hours-row{border-bottom:1px solid #eee;flex-wrap:wrap;row-gap:.5rem;padding-bottom:.75rem;display:flex}.hours-day-label,.hours-closed-toggle,.hours-row input[type=time]{flex:100%}}.calendar-toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.calendar-month-label{min-width:200px;margin:0}@media (width<=500px){.calendar-month-label{flex:100%;order:-1;min-width:0}}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;max-width:700px;margin-bottom:2rem;display:grid}.calendar-weekday{text-align:center;color:#666;padding:.25rem 0;font-weight:600}.calendar-cell{aspect-ratio:1;color:#333;font:inherit;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:.25rem;display:flex}.calendar-cell:hover{background:#f5f5f5}.calendar-cell.empty{cursor:default;background:0 0;border:none}.calendar-cell.today{border:2px solid #333;font-weight:700}.calendar-cell.selected{color:#fff;background:#333}.calendar-day-number{font-size:1rem}.calendar-count-badge{color:#fff;text-align:center;background:#333;border-radius:999px;min-width:1.5rem;padding:.1rem .5rem;font-size:.75rem}.calendar-cell.selected .calendar-count-badge{color:#333;background:#fff}@media (width<=500px){.calendar-grid{gap:2px}.calendar-cell{gap:.15rem;padding:.15rem}.calendar-day-number{font-size:.8rem}.calendar-count-badge{min-width:1.1rem;padding:.05rem .3rem;font-size:.68rem}}.calendar-day-view{max-width:900px}.drive-time-row td{color:#444;background:#f0f0f0;border-left:3px solid #999;font-size:.9rem;font-weight:600}.drive-time-row.drive-time-unknown td{color:#8a6d1f;background:#fdf6e3;border-left-color:#d4a72c}.team-calendar-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.team-calendar-column{background:#fafafa;border:1px solid #ccc;border-radius:4px;padding:1rem}.team-calendar-column.unavailable{background:#fdf6e3;border-color:#d4a72c}.team-calendar-column-header{margin-bottom:.75rem}.team-calendar-column-header h3{margin:0 0 .4rem}.skill-tags{flex-wrap:wrap;gap:.35rem;margin:.35rem 0;display:flex}.skill-tag{color:#fff;background:#333;border-radius:999px;padding:.15rem .6rem;font-size:.75rem}.no-skills{color:#666;font-size:.85rem}.unavailable-badge{color:#8a6d1f;margin:.35rem 0 0;font-weight:600}.team-calendar-empty{color:#666;font-size:.9rem}.team-calendar-job{background:#fff;border:1px solid #ddd;border-radius:4px;margin-bottom:.5rem;padding:.5rem .65rem}.team-calendar-job p{margin:.15rem 0}.team-calendar-job-time{font-weight:600}.team-calendar-job-description{color:#444;font-size:.9rem}.team-calendar-job-status{color:#666;text-transform:capitalize;font-size:.8rem}.skills-editor{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.skills-editor input{font:inherit;border:1px solid #ccc;border-radius:4px;min-width:180px;min-height:44px;padding:.4rem}.skills-display{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.activity-log-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.activity-log-entry{background:#fafafa;border:1px solid #eee;border-radius:4px;flex-wrap:wrap;align-items:baseline;gap:.75rem;padding:.6rem .85rem;display:flex}.activity-log-time{color:#666;white-space:nowrap;font-size:.85rem}.activity-log-actor{font-weight:600}.activity-log-details{color:#333}.assignment-display{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.assignment-editor{flex-direction:column;gap:.35rem;min-width:200px;display:flex}.assignment-editor-option{align-items:center;gap:.4rem;font-weight:400;display:flex}.suggested-badge{color:#fff;background:#1a7f37;border-radius:999px;padding:.1rem .5rem;font-size:.7rem}.assignment-editor-actions{flex-wrap:wrap;gap:.4rem;margin-top:.25rem;display:flex}.assignment-suggest-note{color:#666;max-width:240px;margin:.25rem 0 0;font-size:.8rem}.clock-in-button{background:#1a7f37;border-color:#1a7f37}.clock-out-button{background:#b00020;border-color:#b00020}.clocked-in-note{color:#1a7f37;font-size:.8rem;font-weight:600}.busy-badge{color:#fff;background:#b00020;border-radius:999px;padding:.15rem .6rem;font-size:.75rem}.available-badge{color:#fff;background:#1a7f37;border-radius:999px;padding:.15rem .6rem;font-size:.75rem}.leaderboard-list{flex-direction:column;gap:.5rem;max-width:480px;margin:0;padding:0;list-style:none;display:flex}.leaderboard-row{background:#fafafa;border:1px solid #ccc;border-radius:4px;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.leaderboard-rank{min-width:2.5rem;font-weight:700}.leaderboard-name{flex:1;font-weight:600}.leaderboard-count{color:#666}.leaderboard-row:first-child{background:#f0f9f2;border-color:#1a7f37}.leaderboard-toggle{gap:.4rem;margin-bottom:1rem;display:flex}.team-tabs{border-bottom:1px solid #ccc;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem;padding-bottom:.5rem;display:flex}.team-tab{color:#333;background:#fff;border:1px solid #ccc;border-radius:999px;padding:.4rem 1rem}.team-tab.selected{color:#fff;background:#333;border-color:#333}.team-tab-panel h2{margin-top:0}.skill-preset-editor{flex-direction:column;gap:.5rem;min-width:260px;display:flex}.skill-preset-options{flex-wrap:wrap;gap:.4rem;display:flex}.skill-preset-chip{color:#333;background:#fff;border:1px solid #ccc;border-radius:999px;min-height:36px;padding:.3rem .75rem;font-size:.85rem}.skill-preset-chip.selected{color:#fff;background:#333;border-color:#333}.skill-other-input{gap:.4rem;display:flex}.skill-other-input input{font:inherit;border:1px solid #ccc;border-radius:4px;flex:1;min-width:0;min-height:40px;padding:.4rem}.skill-tag.removable{align-items:center;gap:.3rem;display:inline-flex}.skill-tag.removable button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;line-height:1}.availability-manager{flex-direction:column;gap:.5rem;min-width:240px;display:flex}.availability-manager-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.availability-manager-list li{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.availability-manager-form{flex-wrap:wrap;gap:.4rem;display:flex}.availability-manager-form input[type=date],.availability-manager-form input[type=text]{font:inherit;border:1px solid #ccc;border-radius:4px;min-height:36px;padding:.35rem}.calendar-jump input{font:inherit;border:1px solid #ccc;border-radius:4px;min-height:44px;padding:.4rem}.dashboard-chart-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:2rem;display:grid}.dashboard-chart-grid h4{margin:0 0 .5rem}.bar-chart{margin-bottom:1.5rem}.bar-chart-vertical{border-bottom:1px solid #ccc;align-items:flex-end;gap:.5rem;height:180px;margin-bottom:1.5rem;display:flex;overflow-x:auto}.bar-chart-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:.25rem;min-width:18px;height:100%;display:flex}.bar-chart-value{color:#666;white-space:nowrap;min-height:1em;font-size:.65rem}.bar-chart-bar-vertical{background:#333;border-radius:3px 3px 0 0;width:60%;min-width:8px;transition:height .2s}.bar-chart-label{color:#666;white-space:nowrap;font-size:.65rem}.bar-chart-horizontal{flex-direction:column;gap:.6rem;display:flex}.bar-chart-row{grid-template-columns:100px 1fr auto;align-items:center;gap:.6rem;display:grid}.bar-chart-row-label{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.bar-chart-track{background:#f0f0f0;border-radius:4px;height:20px;overflow:hidden}.bar-chart-bar-horizontal{background:#333;border-radius:4px;height:100%;transition:width .2s}.bar-chart-row-value{color:#666;text-align:right;min-width:3ch;font-size:.8rem}@media (width<=600px){.bar-chart-row{grid-template-columns:80px 1fr auto}}.performance-summary-box{background:#fafafa;border:1px solid #ccc;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem 2rem;display:inline-block}.performance-summary-total{font-size:2.5rem;font-weight:700;line-height:1.2}.owner-badge{color:#fff;background:#333;border-radius:999px;padding:.15rem .6rem;font-size:.75rem}.comparison-change{margin-top:.35rem;font-size:.9rem;font-weight:600}.comparison-up{color:#1a7f37}.comparison-down{color:#b00020}.comparison-flat{color:#666}.export-buttons{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.reports-print-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.reports-print-button{color:#333;background:#fff}.custom-range-form{flex-wrap:wrap;align-items:center;gap:.6rem;margin:1rem 0 1.5rem;display:flex}.custom-range-form input[type=date]{font:inherit;border:1px solid #ccc;border-radius:4px;min-height:44px;padding:.4rem}@media print{nav,.reports-print-button,.custom-range-form,.team-tabs,.leaderboard-toggle,.export-buttons{display:none!important}main{max-width:100%;margin:0;padding:0}.bar-chart-bar-vertical,.bar-chart-bar-horizontal,.performance-summary-box,.stat-card,.owner-badge,.skill-tag,.busy-badge,.available-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}table,.bar-chart-vertical,.bar-chart-horizontal,.stat-grid,.performance-summary-box{break-inside:avoid}}
