.tnum{font-variant-numeric:tabular-nums}.meta{color:var(--ink-3);font-size:13px;line-height:18px}.st{color:var(--fg);white-space:nowrap;align-items:center;gap:5px;font-size:12px;font-weight:700;line-height:16px;display:inline-flex}.st:before{content:"";width:14px;height:14px;-webkit-mask:var(--i) center / contain no-repeat;-webkit-mask:var(--i) center / contain no-repeat;mask:var(--i) center / contain no-repeat;background:currentColor;flex:none}.st.lg{gap:7px;font-size:16px;line-height:22px}.st.lg:before{width:18px;height:18px}.s-booked{--fg:var(--st-booked-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4.5' width='18' height='16' rx='2'/><path d='M3 9.5h18M8 2.5v4M16 2.5v4'/></svg>")}.s-dropped{--fg:var(--st-dropped-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 13h5l1.5 3h5L16 13h5'/><path d='M5.5 5h13L21 13v6H3v-6z'/></svg>")}.s-progress{--fg:var(--st-progress-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/></svg>")}.s-parts{--fg:var(--st-parts-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3.5 7.5 12 3l8.5 4.5v9L12 21l-8.5-4.5z'/><path d='M3.5 7.5 12 12l8.5-4.5M12 12v9'/></svg>")}.s-overdue{--fg:var(--st-overdue-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/><path d='M12 9v4M12 17h.01'/></svg>")}.s-ready{--fg:var(--st-ready-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='7.5' cy='15.5' r='4.5'/><path d='M10.7 12.3 20 3M16 7l3 3M18.5 4.5l2 2'/></svg>")}.s-completed{--fg:var(--st-completed-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='m8 12.5 2.8 2.8 5.7-5.8'/></svg>")}.s-requested{--fg:var(--st-booked-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 8v4M12 16h.01'/></svg>")}.s-cancelled{--fg:var(--st-overdue-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='m15 9-6 6M9 9l6 6'/></svg>")}.s-draft{--fg:var(--ink-3);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M16.5 3.5a2.1 2.1 0 0 1 3 3L8 18l-4 1 1-4z'/></svg>")}.s-unpaid{--fg:var(--st-parts-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M15 9.2c-.5-.9-1.6-1.4-3-1.4-1.8 0-3 .8-3 2.1 0 3 6 1.5 6 4.3 0 1.3-1.3 2.1-3 2.1-1.5 0-2.6-.6-3.1-1.5M12 6v1.8M12 16.3V18'/></svg>")}.s-paid{--fg:var(--st-completed-fg);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='m8 12.5 2.8 2.8 5.7-5.8'/></svg>")}.s-void{--fg:var(--ink-3);--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6'/></svg>")}.plate{border:1.5px solid var(--ink);border-radius:var(--radius-tag);background:var(--page);height:22px;color:var(--ink);letter-spacing:.06em;font-variant-numeric:tabular-nums;text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;padding:0 6px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.plate.lg{border-width:2px;height:32px;padding:0 9px;font-size:17px}.btn-icon{width:var(--control);justify-content:center;padding:0}.btn-sm.btn-icon{width:var(--control-sm)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar-calendar{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.toolbar-nav{align-items:center;gap:var(--space-2);display:inline-flex}.toolbar-nav-date{padding:0 var(--space-3);text-align:center;line-height:var(--control-sm);flex-shrink:0}.toolbar-nav-btn{width:var(--control-sm);flex-shrink:0}.toolbar-seg-group{align-items:center;gap:10px;display:inline-flex}.seg{box-sizing:border-box;height:var(--control);background:var(--grey-1);border-radius:var(--radius-control);border:1px solid var(--border);align-items:stretch;gap:2px;padding:2px;display:inline-flex}.seg>button{height:auto;font-family:var(--font-sans);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;justify-content:center;align-self:stretch;align-items:center;gap:6px;padding:0 12px;font-size:15px;font-weight:600;line-height:1;display:inline-flex}.seg>.seg-divider{background:var(--divider);flex-shrink:0;align-self:stretch;width:1px;margin:5px 0}.seg>button[aria-pressed=true]{background:var(--graphite);color:var(--on-graphite)}.seg>button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.seg>a{height:auto;font-family:var(--font-sans);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;justify-content:center;align-self:stretch;align-items:center;gap:6px;padding:0 12px;font-size:15px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.seg>a[aria-current=page]{background:var(--graphite);color:var(--on-graphite)}.seg>a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.ask-wrap{width:360px;max-width:100%}.ask{height:var(--control);background:var(--page);border:1px solid var(--border);width:100%;box-shadow:var(--elev-1);color:var(--ink-3);cursor:text;border-radius:10px;align-items:center;gap:10px;padding:0 8px 0 6px;font-size:14px;display:flex}.ask .spark{background:var(--lime);width:28px;height:28px;color:var(--on-lime);border-radius:7px;flex:none;justify-content:center;align-items:center;display:flex}.ask-field{flex:1;grid-template-columns:minmax(0,1fr);align-self:stretch;align-items:center;min-width:0;display:grid}.ask-field input,.ask-field .ph{width:100%;min-width:0;font:inherit;border:none;grid-area:1/1;margin:0;padding:0;font-size:14px;line-height:18px}.ask-field input{color:var(--ink);z-index:1;caret-color:var(--ink);background:0 0;outline:none}.ask-field input:placeholder-shown{color:#0000}.ask-field .ph{pointer-events:none;z-index:0;white-space:nowrap;text-overflow:ellipsis;color:var(--ink-3);overflow:hidden}.ask-field .ph b{color:var(--ink);font-weight:700}.ask-field input::placeholder{color:#0000}.ask .kbd{color:var(--ink-3);border:1px solid var(--border);border-radius:4px;flex:none;padding:1px 5px;font-size:11px;line-height:16px}.ask-mic{width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.ask-mic[aria-pressed=true]{color:var(--st-overdue-fg);background:var(--st-overdue-bg)}.ask-mic:hover{color:var(--ink-2)}.rail{width:var(--rail-width);background:var(--rail);z-index:100;flex-direction:column;align-items:center;gap:4px;padding:14px 0;transition:width .2s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.rail.is-expanded{width:var(--rail-width-expanded)}.rail .logo{width:var(--rail-item);height:var(--rail-item);border-radius:var(--radius-control);background:var(--lime);color:var(--on-lime);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;margin-bottom:10px;margin-left:12px;text-decoration:none;display:flex}.rail .logo svg{flex-shrink:0;display:block}.rail a:not(.logo),.rail button.rail-btn{box-sizing:border-box;width:100%;height:var(--rail-item);color:var(--rail-ink);cursor:pointer;font:inherit;text-align:start;background:0 0;border:none;border-radius:0;flex-shrink:0;justify-content:flex-start;align-self:stretch;align-items:center;gap:10px;padding:0 12px 0 22px;text-decoration:none;display:flex;overflow:hidden}.rail a:not(.logo):hover,.rail button.rail-btn:hover{color:#fff;background:#ffffff0d}.rail a:not(.logo)[aria-current=page]{background:var(--rail-active);color:var(--lime)}.rail a:not(.logo)[aria-current=page]:hover{color:var(--lime)}.rail-label{opacity:0;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;text-align:start;flex:1;min-width:0;font-size:.85rem;font-weight:500;transition:opacity .15s 50ms;overflow:hidden}.rail.is-expanded .rail-label{opacity:1}.rail a svg,.rail button.rail-btn svg{flex-shrink:0}.rail-spacer{flex:1;min-height:8px}.account-avatar{border-radius:var(--radius-round);background:var(--graphite);width:36px;height:36px;color:var(--on-graphite);flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.shell-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6) var(--space-3);min-width:0;display:flex}.shell-header-left{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.shell-header-back{flex-shrink:0}.shell-header-title-block{flex:1;min-width:0}.shell-header-title{color:var(--ink);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:26px;font-weight:700;line-height:32px;overflow:hidden}.shell-header-title .page-trail{flex-wrap:nowrap;align-items:baseline;gap:0;min-width:0;max-width:100%;display:flex}.shell-header-title .page-trail-parent,.shell-header-title .page-trail-sep{color:var(--ink-3);flex:none;font-weight:600}.shell-header-title .page-trail-current{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.shell-header-sub{color:var(--ink-3);margin-top:2px;font-size:13px}.shell-header-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.nav-progress{top:0;left:var(--rail-width);z-index:90;background:linear-gradient(90deg, var(--lime) 0%, var(--lime) 40%, transparent 100%);pointer-events:none;height:3px;animation:1.2s ease-in-out infinite nav-progress-pulse;position:fixed;right:0}@keyframes nav-progress-pulse{0%,to{opacity:.55}50%{opacity:1}}.record-page-loading{flex-direction:column;flex:1;min-height:0;display:flex}.record-page-loading-title{background:var(--grey-1);border-radius:8px;width:min(320px,70%);height:32px;animation:1.4s ease-in-out infinite record-shimmer}.record-page-loading-sub{background:var(--grey-1);border-radius:6px;width:120px;height:14px;margin-top:8px;animation:1.4s ease-in-out .1s infinite record-shimmer}.record-page-loading-ask{width:360px;max-width:40vw;height:var(--control);background:var(--grey-1);border-radius:10px;animation:1.4s ease-in-out 50ms infinite record-shimmer}.record-page-loading-body{padding:48px var(--space-6) var(--space-6);flex-direction:column;flex:1;justify-content:flex-start;align-items:center;gap:12px;display:flex}.record-page-loading-label{color:var(--ink-2);margin:0;font-size:15px;font-weight:600}.record-page-loading-blocks{flex-direction:column;gap:10px;width:100%;max-width:720px;margin-top:24px;display:flex}.record-page-loading-block{background:var(--grey-1);border-radius:6px;height:14px;animation:1.4s ease-in-out infinite record-shimmer}.record-page-loading-block-lg{border-radius:var(--radius-control);height:48px}.record-page-loading-block-sm{width:55%}@keyframes record-shimmer{0%,to{opacity:.45}50%{opacity:.85}}.column{background:var(--grey-1);border-radius:var(--radius-column);flex-direction:column;gap:6px;min-width:0;min-height:0;padding:8px;display:flex}.column-head{flex-shrink:0;align-items:center;gap:8px;padding:4px 4px 0;font-size:14px;font-weight:700;display:flex}.column-head .t{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.column-sub{color:var(--ink-2);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 4px 4px;font-size:12px}.count{border-radius:var(--radius-round);background:var(--page);min-width:20px;height:20px;color:var(--ink-2);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.count.alert{background:var(--st-overdue-solid);color:#fff}.column.ready{background:var(--st-ready-bg);box-shadow:inset 0 0 0 1.5px var(--st-ready-solid)}.column.ready .column-sub{color:var(--st-ready-fg);font-weight:700}.column-body{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex;overflow-y:auto}.column-empty{background:var(--page);border-radius:var(--radius-control);min-height:120px;color:var(--ink-3);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px 8px;font-size:13px;display:flex}.column-empty--slot{justify-content:flex-start;min-height:92px;padding:10px 11px}.column-more{border-radius:var(--radius-control);height:30px;font:inherit;color:var(--ink-2);cursor:pointer;background:#ffffffb3;border:0;flex-shrink:0;width:100%;font-size:12px;font-weight:700}.board-card{background:var(--page);border:1px solid var(--border);border-radius:var(--radius-control);color:var(--ink);box-sizing:border-box;cursor:pointer;flex-direction:column;gap:5px;min-width:0;min-height:92px;padding:10px 11px;text-decoration:none;transition:box-shadow .15s;display:flex}.board-card:hover{box-shadow:var(--elev-1)}.board-card .r1,.board-card .r2{align-items:center;gap:6px;min-width:0;display:flex}.board-card .title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:18px;overflow:hidden}.board-card .time{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:12px}.board-card .amount{font-variant-numeric:tabular-nums;margin-left:auto;font-size:14px;font-weight:700}.board-card .sub{min-width:0;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.board-card button.call{cursor:pointer;color:var(--ink-2);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:2px;display:inline-flex}.board-card button.call:hover{color:var(--ink)}.board-card.parts{background:var(--st-parts-bg);border-color:var(--st-parts-border)}.board-card.overdue{background:var(--st-overdue-bg);border-color:var(--st-overdue-solid);box-shadow:inset 0 0 0 1px var(--st-overdue-solid)}.board-card.overdue .time{color:var(--st-overdue-fg);font-weight:700}.banner{border-radius:var(--radius-panel);background:var(--grey-1);flex-wrap:wrap;align-items:center;gap:14px;padding:14px 16px;display:flex}.banner.on-tint .btn-primary{background:var(--graphite);color:var(--on-graphite)}.banner.on-tint .btn-primary:hover{background:var(--ink)}.banner .txt{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.banner .txt p{color:var(--ink-2);margin:0;font-size:14px}.banner.parts{background:var(--st-parts-bg);border:1px solid var(--st-parts-border)}.banner.overdue{background:var(--st-overdue-bg);border:1px solid var(--st-overdue-solid)}.banner.ready{background:var(--st-ready-bg);border:1px solid var(--st-ready-solid)}.banner.completed{background:var(--st-completed-bg);border:1px solid #9fd3ae}.track{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.track>div{color:var(--ink-3);flex-direction:column;gap:6px;font-size:12px;display:flex}.track>div>i{background:#e6e7e4;border-radius:99px;height:5px;font-style:normal;display:block}.track>.done{color:var(--ink-2)}.track>.done>i{background:var(--graphite)}.track>.now{color:var(--ink);font-weight:700}.track.s-parts>.now>i{background:var(--st-parts-solid)}.track.s-progress>.now>i{background:var(--st-progress-solid)}.track.s-overdue>.now>i{background:var(--st-overdue-solid)}.track.s-ready>.now>i{background:var(--st-ready-solid)}.track.s-dropped>.now>i{background:var(--st-dropped-solid)}.track.s-completed>.now>i{background:var(--st-completed-solid)}.data-table{background:var(--page);border:1px solid var(--border);border-radius:var(--radius-panel);overflow:hidden}.data-table .tr{grid-template-columns:var(--cols);border-top:1px solid var(--divider);min-width:0;color:inherit;align-items:center;gap:14px;padding:11px 16px;font-size:14px;text-decoration:none;display:grid}.data-table .tr.head{background:var(--grey-1);color:var(--ink-3);border-top:0;padding-top:9px;padding-bottom:9px;font-size:12px;font-weight:600}.data-table .tr.parts{background:var(--st-parts-bg)}.data-table .tr.overdue{background:var(--st-overdue-bg)}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .row-actions{opacity:0;justify-content:flex-end;gap:2px;display:flex}.data-table .tr:hover .row-actions,.data-table .tr:focus-within .row-actions{opacity:1}.data-table .tr:hover{background:#f7f8f6}.record-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}@media (max-width:1024px){.record-layout{grid-template-columns:1fr}}.job-record .side-panel{max-height:calc(100vh - 88px);position:sticky;top:72px;overflow-y:auto}.side-panel{gap:var(--space-3);background:var(--grey-1);border-radius:var(--radius-panel);padding:var(--space-3);flex-direction:column;display:flex}.side-panel .card{border-radius:var(--radius-control)}.board-grid{gap:var(--space-3);height:100%;min-height:0;padding:0 var(--space-6) var(--space-4);flex:1;grid-template-columns:repeat(4,minmax(0,1fr));align-content:stretch;display:grid}@media (max-width:1200px){.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.nav-drawer-backdrop{display:none}.btn.shell-header-menu{flex-shrink:0;display:none}.month-day-add{opacity:0;pointer-events:none}.month-day-cell:hover .month-day-add{opacity:1;pointer-events:auto}@media (max-width:768px){.nav-drawer-backdrop{z-index:99;cursor:pointer;background:#1a181373;border:0;margin:0;padding:0;display:block;position:fixed;inset:0}.rail.rail--mobile{width:var(--rail-width-expanded);z-index:100;box-shadow:var(--elev-2);pointer-events:none;transition:transform .2s cubic-bezier(.4,0,.2,1);transform:translate(-100%)}.rail.rail--mobile.rail--mobile-open{pointer-events:auto;transform:translate(0)}.rail.rail--mobile .rail-label{opacity:1;width:auto}.btn.shell-header-menu{display:inline-flex}.ask .kbd{display:none}.data-table .row-actions{opacity:1}.month-day-add{opacity:1!important;pointer-events:auto!important}.shell-header{padding:var(--space-3) var(--space-4) var(--space-2);align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title avatar""ask ask";display:grid}.shell-header-left{grid-area:title;align-self:center;min-width:0}.shell-header-right{display:contents}.shell-header-right .ask-wrap{grid-area:ask;width:100%;min-width:0;max-width:none}.shell-header-right .account-avatar{grid-area:avatar;align-self:start;margin-top:2px}.shell-header-right>:not(.ask-wrap):not(.account-avatar){grid-area:ask/1/ask/-1;width:100%;min-width:0}.shell-header-title{font-size:18px;line-height:24px}.shell-header-sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shell-header--control .shell-header-sub{display:none}.toolbar--control{gap:var(--space-2) var(--space-3);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nav today""modes booking";align-items:center;display:grid}.toolbar--control .toolbar-calendar{display:contents}.toolbar--control .toolbar-nav{grid-area:nav}.toolbar--control .toolbar-today-seg{grid-area:today;justify-self:end}.toolbar--control .toolbar-mode-seg{grid-area:modes;min-width:0}.toolbar--control .toolbar-mode-seg .seg{width:100%}.toolbar--control .toolbar-mode-seg .seg>button{padding:0 8px;font-size:14px}.toolbar--control .toolbar-new-booking{white-space:nowrap;grid-area:booking}.toolbar--control .toolbar-spacer{display:none}.toolbar--control>.meta{grid-column:1/-1}.toolbar--control .toolbar-seg-group{display:contents}.board-grid{padding:0 var(--space-4) var(--space-4);grid-template-columns:1fr;height:auto;min-height:0}.job-record .side-panel{max-height:none;position:static;overflow:visible}.track{-webkit-overflow-scrolling:touch;padding-bottom:4px;overflow-x:auto}.data-table{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table .tr{min-width:520px}.toolbar{padding-left:var(--space-4)!important;padding-right:var(--space-4)!important}.settings-table-wrap{-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);overflow-x:auto}.month-view-root{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-x:auto}.month-view-grid{min-width:560px}}.workshop-page-pad{padding-left:var(--space-6);padding-right:var(--space-6);padding-bottom:var(--space-6)}.workshop-record-pad{padding:0 var(--space-6) var(--space-6);box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto}.list-controls{flex-wrap:nowrap;flex:240px;min-width:0}.list-controls-search{flex:240px;min-width:200px;max-width:400px}@media (max-width:768px){.workshop-page-pad,.workshop-record-pad{padding-left:var(--space-4);padding-right:var(--space-4)}.dashboard-board-area{flex:none!important;min-height:auto!important;overflow:visible!important}.dashboard-board-inner{min-height:auto!important;overflow:visible!important}.week-view-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.week-view-grid{min-width:640px}.list-controls-search{min-width:0;max-width:100%}.list-controls{flex-wrap:wrap}}.admin-console .admin-form-row{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;display:grid}.admin-console .admin-form-row .admin-form-actions{gap:var(--space-2);flex-direction:column;align-items:stretch;display:flex}.admin-console .admin-form-row .btn-primary{white-space:nowrap}.admin-console .admin-table{background:var(--page);border:1px solid var(--border);border-radius:var(--radius-panel);overflow:hidden}.admin-console .admin-table .tr{border-top:1px solid var(--divider);grid-template-columns:88px minmax(0,1.4fr) minmax(0,1fr) 44px;align-items:center;gap:14px;min-width:0;padding:11px 16px;font-size:14px;display:grid}.admin-console .admin-table .tr.head{background:var(--grey-1);color:var(--ink-3);border-top:0;padding-top:9px;padding-bottom:9px;font-size:12px;font-weight:600}.admin-console .admin-table .tr:hover:not(.head):not(.workshop-head){background:#f7f8f6}.admin-console .admin-table .tr.workshop-head{background:var(--grey-1);border-top:1px solid var(--border);grid-template-columns:1fr;padding-top:12px;padding-bottom:12px}.admin-console .admin-table .admin-workshop-group:first-child .tr.workshop-head{border-top:0}.admin-console .admin-table .workshop-head-inner{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-console .admin-table .workshop-head-title{color:var(--ink);font-weight:700}.admin-console .admin-table .workshop-head-meta{color:var(--ink-3);font-size:13px;font-weight:500}.admin-console .admin-table .role-badge{color:var(--ink-3);font-size:12px;font-weight:600}.admin-console .admin-table .email-cell{word-break:break-word}.admin-console .admin-table .tr.change-owner-row{background:var(--page);grid-template-columns:1fr;padding-top:10px;padding-bottom:14px}.admin-console .admin-table .change-owner-form{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.admin-console .admin-table .change-owner-form .form-input{flex:12rem;min-width:0;max-width:20rem}.admin-console .admin-table--admins .tr,.admin-console .admin-table--admins .tr.head{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 100px 44px}.copyable-password--compact{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.copyable-password__code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);letter-spacing:.05em;padding:.25rem .45rem;font-family:ui-monospace,monospace;font-size:.85rem}.settings-staff-handoff{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);margin:var(--space-4) var(--space-6) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--grey-1);border:1px solid var(--border);border-radius:var(--radius-input);flex-wrap:wrap;display:flex}.settings-staff-handoff__message{align-items:center;gap:var(--space-2);min-width:min(100%,16rem);color:var(--text-secondary);flex:1;margin:0;font-size:.825rem;line-height:1.4;display:flex}.settings-staff-handoff__message svg{color:var(--accent);flex-shrink:0}.settings-staff-handoff--error{background:var(--danger-bg);border-color:#0000}.settings-staff-handoff--error .settings-staff-handoff__message,.settings-staff-handoff--error .settings-staff-handoff__message svg{color:var(--danger)}.admin-console .admin-empty{color:var(--text-muted);margin:0}@media (max-width:768px){.admin-console .admin-form-row{grid-template-columns:1fr}.admin-console .admin-form-row .admin-form-actions .btn-primary{align-self:flex-start;width:auto}.admin-console .admin-table{background:0 0;border:0;overflow:visible}.admin-console .admin-table .tr.head{display:none}.admin-console .admin-table .tr{border:1px solid var(--border);border-radius:var(--radius-control);min-width:0;margin-bottom:var(--space-2);background:var(--page);grid-template-columns:1fr;gap:6px;padding:12px 14px}.admin-console .admin-table .tr.workshop-head{border-radius:var(--radius-panel);margin-bottom:var(--space-2);padding:14px}.admin-console .admin-table .tr.change-owner-row{border:1px dashed var(--border);margin-bottom:var(--space-3)}.admin-console .admin-table .tr.account-row:before{content:attr(data-role);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-size:11px;font-weight:600}.admin-console .admin-table .tr.account-row .role-badge{display:none}.admin-console .admin-table .tr.account-row .email-cell:before{content:"Email · ";color:var(--ink-3);font-size:12px}.admin-console .admin-table .password-cell:empty{display:none}.admin-console .admin-table .password-cell:not(:empty):before{content:"First password · ";color:var(--ink-3);margin-bottom:4px;font-size:12px;display:block}.admin-console .admin-table .row-delete{justify-self:start;margin-top:4px}.admin-console .admin-table--admins .tr:not(.head){grid-template-rows:auto auto auto;grid-template-columns:1fr auto;display:grid}.admin-console .admin-table--admins .tr .email-cell{grid-column:1/-1}.admin-console .admin-table--admins .tr .password-cell{grid-column:1}.admin-console .admin-table--admins .tr .created-cell{color:var(--ink-3);font-size:12px}.admin-console .admin-table--admins .tr .created-cell:before{content:"Added · "}.admin-console .admin-table--admins .tr .row-delete{grid-area:1/2/span 2;align-self:start}}
:root{--font-sans:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;--font-ui:var(--font-sans);--font-mono:var(--font-sans);--page:#fff;--grey-1:#f2f3f0;--border:#d0d2cd;--divider:#e0e1dd;--border-control:#7b7e79;--ink:#111315;--ink-2:#3c4044;--ink-3:#5a5f63;--rail:#16181b;--rail-ink:#c4c7cc;--rail-active:#2a2d31;--lime:#c6f135;--lime-hover:#b5e21c;--lime-ink:#4d7c0f;--lime-ink-hover:#3f6212;--on-lime:#111315;--graphite:#111315;--on-graphite:#fff;--danger:#c81e1e;--st-booked-fg:#4a4f55;--st-booked-bg:#eef0ee;--st-booked-solid:#6b7078;--st-dropped-fg:#334155;--st-dropped-bg:#e7ebf0;--st-dropped-solid:#475569;--st-progress-fg:#5427b8;--st-progress-bg:#efe9fc;--st-progress-solid:#6236c9;--st-parts-fg:#9a3412;--st-parts-bg:#fff4ea;--st-parts-border:#f2c7a8;--st-parts-solid:#c2410c;--st-overdue-fg:#b01818;--st-overdue-bg:#fff2f2;--st-overdue-solid:#c81e1e;--st-ready-fg:#0b4d80;--st-ready-bg:#e3f0fc;--st-ready-solid:#5ba2df;--st-completed-fg:#14632f;--st-completed-bg:#e3f4e8;--st-completed-solid:#15803d;--radius-tag:5px;--radius-control:8px;--radius-column:10px;--radius-panel:12px;--radius-round:999px;--control:40px;--control-sm:32px;--rail-width:64px;--rail-width-expanded:240px;--rail-item:40px;--elev-0:none;--elev-1:0 1px 2px #1113150d;--elev-2:0 12px 40px #1113152e;--paper-white:var(--page);--paper-canvas:var(--grey-1);--paper-warm:var(--grey-1);--paper-muted:var(--border);--paper-text:var(--ink-3);--charcoal:var(--graphite);--dark-700:var(--graphite);--dark-600:var(--ink-2);--bg-surface:var(--page);--bg-base:var(--page);--bg-elevated:var(--grey-1);--bg-hover:var(--grey-1);--text-primary:var(--ink);--text-secondary:var(--ink-2);--text-muted:var(--ink-3);--border-strong:var(--border-control);--border-focus:var(--ink);--primary:var(--lime-ink);--primary-hover:var(--lime-ink-hover);--primary-light:var(--grey-1);--primary-text:var(--on-lime);--accent:var(--lime-ink);--accent-hover:var(--lime-ink-hover);--accent-light:var(--grey-1);--accent-glow:#c6f13526;--success:var(--st-completed-fg);--success-bg:var(--st-completed-bg);--warning:var(--st-parts-fg);--warning-bg:var(--st-parts-bg);--danger-bg:var(--st-overdue-bg);--info:var(--st-ready-fg);--info-bg:var(--st-ready-bg);--in-progress:var(--st-progress-fg);--in-progress-bg:var(--st-progress-bg);--neutral:var(--ink-3);--neutral-bg:var(--grey-1);--radius-sm:var(--radius-tag);--radius-input:var(--radius-control);--radius-md:var(--radius-control);--radius-card:var(--radius-panel);--radius-lg:var(--radius-panel);--radius-pill:var(--radius-round);--radius-full:var(--radius-round);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--shadow-e1:var(--elev-1);--shadow-e2:var(--elev-2);--shadow-e3:var(--elev-2);--transition:.15s ease;--sidebar-w:var(--rail-width)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px}body{font-family:var(--font-ui);background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:22px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-ui)}input,select,textarea{font-family:var(--font-ui)}.app-layout{min-height:100vh;display:flex}.main-content{background:var(--page);height:100vh;margin-left:var(--rail-width);flex-direction:column;flex:1;min-width:0;margin-right:0;display:flex;overflow-y:auto}.page-header{padding:var(--space-6) 0;z-index:10;background:0 0;justify-content:space-between;align-items:center;width:80%;margin:0 auto;display:flex;position:sticky;top:0}.page-title{color:var(--ink);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:32px}.page-body{padding:var(--space-6) 0;width:80%;margin:0 auto}.card{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-e1);overflow:hidden}.card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);background:var(--bg-base);justify-content:space-between;align-items:center;display:flex}.card-title{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:600}.card-body{padding:var(--space-5)}.kpi-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-5) var(--space-6)}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2);font-size:.72rem;font-weight:600}.kpi-value{font-family:var(--font-mono);color:var(--text-primary);font-size:2rem;font-weight:700;line-height:1}.kpi-value.accent{color:var(--primary)}.kpi-value.warning{color:var(--warning)}.kpi-value.danger{color:var(--danger)}.kpi-sub{color:var(--text-muted);margin-top:var(--space-1);font-size:.72rem}.btn{height:var(--control);border-radius:var(--radius-control);transition:background var(--transition), border-color var(--transition), color var(--transition);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn-primary{background:var(--lime);color:var(--on-lime);border-color:#0000;font-weight:700}.btn-primary:hover{background:var(--lime-hover)}.btn-graphite{background:var(--graphite);color:var(--on-graphite);border-color:#0000}.btn-graphite:hover{background:var(--ink)}.btn-secondary{background:var(--page);color:var(--ink);border:1px solid var(--border-control)}.btn-secondary:hover{background:var(--grey-1)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--grey-1);color:var(--ink)}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-danger:hover{background:var(--danger-bg)}.btn-ai{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-ai:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-sm{height:var(--control-sm);padding:0 10px;font-size:13px}.btn-lg{height:48px;padding:0 20px}.btn:disabled{opacity:.45;cursor:not-allowed}.form-group{flex-direction:column;gap:5px;display:flex}.form-label{color:var(--text-secondary);letter-spacing:.01em;font-size:.775rem;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text-primary);transition:border-color var(--transition);width:100%;padding:8px 12px;font-size:.85rem}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:2px solid var(--ink);outline-offset:2px;border-color:var(--border-control)}.form-textarea{resize:vertical;min-height:90px}.form-hint{color:var(--text-muted);font-size:.72rem}.form-grid{gap:var(--space-4);display:grid}.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-3{grid-template-columns:1fr 1fr 1fr}.checkbox-label{align-items:center;gap:var(--space-2);color:var(--text-secondary);cursor:pointer;margin:var(--space-2) 0;font-size:.825rem;display:flex}.search-bar{align-items:center;gap:var(--space-2);background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);width:100%;max-width:400px;padding:10px 16px;display:flex}.search-bar svg{flex-shrink:0;width:18px;height:18px}.search-input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-size:.85rem}.search-input::placeholder{color:var(--text-muted)}.search-bar--pending{opacity:.7}@keyframes spin{to{transform:rotate(360deg)}}.search-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.6s linear infinite spin}.filter-tab:disabled{cursor:default}.filter-tab.active:disabled{opacity:1}.table-container{overflow-x:auto}.table-container tbody tr.invoice-list-row:hover{background:#f7f8f6}.table-container tbody tr.invoice-list-row:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}table{border-collapse:collapse;width:100%}thead{background:var(--bg-elevated)}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;text-align:left;border-bottom:1px solid var(--border);padding:10px 16px;font-size:.7rem;font-weight:600}td{color:var(--text-primary);border-bottom:1px solid var(--bg-elevated);padding:12px 16px;font-size:.85rem}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-elevated)}.badge-requested:before,.badge-confirmed:before,.badge-checked_in:before,.badge-cancelled:before,.badge-queued:before,.badge-in_progress:before,.badge-awaiting_parts:before,.badge-awaiting_approval:before,.badge-ready:before,.badge-ready_to_collect:before,.badge-complete:before,.badge-completed:before,.badge-draft:before,.badge-unpaid:before,.badge-paid:before,.badge-overdue:before,.badge-void:before{content:none}.badge-requested{--fg:var(--st-booked-fg);color:var(--fg);text-transform:none;letter-spacing:normal;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-confirmed{--fg:var(--st-booked-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-checked_in{--fg:var(--st-dropped-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-cancelled{--fg:var(--st-overdue-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-queued{--fg:var(--st-dropped-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-in_progress{--fg:var(--st-progress-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-awaiting_parts,.badge-awaiting_approval{--fg:var(--st-parts-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-ready,.badge-ready_to_collect{--fg:var(--st-ready-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-complete,.badge-completed{--fg:var(--st-completed-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-draft{--fg:var(--ink-3);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-unpaid{--fg:var(--st-parts-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-paid{--fg:var(--st-completed-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-overdue{--fg:var(--st-overdue-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-void{--fg:var(--ink-3);color:var(--fg);text-transform:none;opacity:1;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-open{--fg:var(--ink-3);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-quoted{--fg:var(--st-ready-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge-approved{--fg:var(--st-completed-fg);color:var(--fg);text-transform:none;background:0 0;padding:0;font-size:12px;font-weight:700}.badge{font-family:var(--font-ui);border-radius:0;align-items:center;gap:5px;padding:0;display:inline-flex}.alert{align-items:center;gap:var(--space-2);border-radius:var(--radius-input);margin-bottom:var(--space-4);border:none;padding:10px 14px;font-size:.825rem;display:flex}.alert-danger{background:var(--danger-bg);color:var(--danger)}.alert-warning{background:var(--warning-bg);color:#92400e}.alert-success{background:var(--success-bg);color:var(--success)}.alert-info{background:var(--info-bg);color:#1e40af}.filter-tabs{background:var(--grey-1);border-radius:var(--radius-control);border:none;gap:2px;width:fit-content;padding:2px;display:inline-flex}.filter-tab{height:36px;color:var(--ink-2);transition:all var(--transition);background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.filter-tab:hover{color:var(--ink)}.filter-tab.active{background:var(--graphite);color:var(--on-graphite)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;padding:var(--space-6);background:#1a181366;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-card);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-e3);overflow-y:auto}.modal-lg{max-width:720px}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);background:var(--bg-base);z-index:1;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.modal-title{color:var(--text-primary);font-size:.95rem;font-weight:700}.modal-close{background:var(--bg-elevated);border-radius:var(--radius-md);width:28px;height:28px;color:var(--text-muted);border:none;justify-content:center;align-items:center;display:flex}.modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.modal-body{padding:var(--space-5) var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.modal-footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);background:var(--bg-elevated);border-radius:0 0 var(--radius-card) var(--radius-card);display:flex}.empty-state{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-10);text-align:center;flex-direction:column;display:flex}.empty-icon{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-card);width:48px;height:48px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.empty-title{color:var(--text-primary);font-size:.9rem;font-weight:600}.empty-desc{color:var(--text-muted);max-width:300px;font-size:.8rem}.detail-grid{gap:var(--space-4);display:grid}.detail-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-size:.7rem;font-weight:600}.detail-value{color:var(--text-primary);font-size:.875rem;font-weight:500}.line-items-table th,.line-items-table td{padding:10px 16px}.total-section{gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);flex-direction:column;display:flex}.total-row{justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.total-row .label{color:var(--text-secondary)}.total-row .amount{font-family:var(--font-mono);font-weight:600}.total-row.grand-total{padding-top:var(--space-3);margin-top:var(--space-1);border-top:1px solid var(--border)}.total-row.grand-total .label{color:var(--text-primary);font-size:.9rem;font-weight:700}.total-row.grand-total .amount{color:var(--primary);font-size:1.05rem;font-weight:700}.quick-action-card{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-card);background:var(--bg-elevated);border:1px solid var(--border);transition:all var(--transition);color:var(--text-primary);font-size:.875rem;font-weight:600;display:flex}.quick-action-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.quick-action-card:hover{background:var(--bg-hover);box-shadow:var(--shadow-e2)}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.ai-loading{background:linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-base) 50%, var(--bg-elevated) 75%);border-radius:var(--radius-md);background-size:200%;animation:1.5s linear infinite shimmer}@keyframes ai-pulse{0%,to{opacity:1}50%{opacity:.6}}.ai-processing{background:var(--accent);animation:1.8s ease-in-out infinite ai-pulse}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.mt-4{margin-top:var(--space-4)}.font-mono{font-family:var(--font-mono)}.font-bold{font-weight:700}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-full{width:100%}.print-only{display:none}@media print{nav,aside,header,footer,.sidebar,.page-header,.no-print{display:none!important}body{background-color:#fff!important}.print-only{display:block!important}.printable-invoice-container{width:100%!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important;position:absolute!important;top:0!important;left:0!important}}@keyframes pulse-glow{0%{box-shadow:0 0 #1c5a4166}70%{box-shadow:0 0 0 6px #1c5a4100}to{box-shadow:0 0 #1c5a4100}}.glow-dot{background-color:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s infinite pulse-glow;display:inline-block}.kanban-container{flex-direction:column;gap:16px;width:100%;height:100%;display:flex}.kanban-day-header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.kanban-board{flex:1;grid-template-columns:repeat(4,1fr);gap:16px;min-height:0;display:grid}.kanban-column{background-color:var(--bg-base);border-radius:var(--radius-card);border:1px solid var(--border);flex-direction:column;min-height:0;display:flex;overflow:hidden}.kanban-column-header{background-color:var(--bg-base);border-radius:var(--radius-card) var(--radius-card) 0 0;border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.kanban-column-title{color:var(--text-primary);letter-spacing:-.01em;align-items:center;gap:8px;font-size:.85rem;font-weight:700;display:flex}.kanban-column-count{font-family:var(--font-mono);border-radius:var(--radius-pill);text-align:center;background:var(--bg-elevated);min-width:24px;color:var(--text-muted);border:1px solid var(--border);padding:2px 8px;font-size:.72rem;font-weight:600}.kanban-column-body{scrollbar-width:thin;scrollbar-color:var(--paper-muted) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px;display:flex;overflow-y:auto}.kanban-column-body::-webkit-scrollbar{width:4px}.kanban-column-body::-webkit-scrollbar-track{background:0 0}.kanban-column-body::-webkit-scrollbar-thumb{background-color:var(--paper-muted);border-radius:var(--radius-pill)}.kanban-empty-state{border-radius:var(--radius-input);border:2px dashed var(--paper-muted);color:var(--text-muted);background-color:#0000;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 16px;font-size:.8rem;font-weight:500;display:flex}.kanban-empty-clickable{border-radius:var(--radius-input);border:2px dashed var(--paper-muted);color:var(--text-muted);cursor:pointer;width:100%;font-size:.85rem;font-weight:500;font-family:var(--font-ui);background-color:#0000;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 16px;transition:all .15s;display:flex}.kanban-empty-clickable .kanban-empty-hover-text{display:none}.kanban-empty-clickable:hover{border-color:var(--primary);color:var(--primary)}.kanban-empty-clickable:hover .kanban-empty-default-text{display:none}.kanban-empty-clickable:hover .kanban-empty-hover-text{display:inline}.kanban-empty-icon{justify-content:center;align-items:center;width:32px;height:32px;display:flex}.kanban-empty-icon svg{width:24px;height:24px}.kanban-add-button{border-radius:var(--radius-input);color:#0000;cursor:pointer;background-color:#0000;border:1.5px dashed #0000;outline:none;flex-shrink:0;justify-content:center;align-items:center;gap:6px;width:100%;min-height:40px;margin-top:4px;font-size:.78rem;font-weight:500;transition:all .15s;display:flex}.kanban-add-button:hover{border-color:var(--paper-muted);color:var(--text-muted);background-color:#1c5a4105}.unified-tile{border-radius:var(--radius-input);cursor:pointer;background:var(--bg-elevated);border:1px solid #0000;flex-direction:column;gap:4px;padding:12px 14px;transition:all .2s;display:flex;position:relative;overflow:hidden}.unified-tile:hover{border-color:var(--border);box-shadow:var(--shadow-e2)}.tile-booking{background-color:var(--bg-elevated);border:1px solid #0000}.tile-booking .tile-rego{color:var(--text-primary)}.tile-job{background-color:var(--bg-elevated);border:1px solid #0000}.tile-job .tile-rego{color:var(--text-primary)}.tile-job-active{background-color:#fdf8f0;border:1px solid #ede5d4}.tile-job-complete{background-color:var(--bg-elevated);border:1px solid #0000}.tile{background-color:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-input);flex-direction:column;gap:8px;padding:16px;transition:all .2s ease-in-out;display:flex}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #1c5a41b3}70%{transform:scale(1);box-shadow:0 0 0 4px #1c5a4100}to{transform:scale(.95);box-shadow:0 0 #1c5a4100}}.pulse-dot{background-color:var(--success);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;display:inline-block}.tile.awaiting-parts{background-color:var(--warning-bg);border-left:3px solid var(--warning)}.tile-rego{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.tile-services{font-family:var(--font-ui);color:var(--text-muted);font-size:.85rem;font-weight:400;line-height:1.4}.price-badge{background-color:var(--charcoal);color:#fff;font-family:var(--font-mono);border-radius:var(--radius-md);padding:4px 10px;font-size:1.15rem;font-weight:700;display:inline-block}@keyframes pulse-recording{0%,to{opacity:1}50%{opacity:.5}}.login-page{justify-content:center;align-items:center;gap:var(--space-5);min-height:100vh;padding:var(--space-6);background:var(--page);flex-direction:column;display:flex}.login-card{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-card);width:100%;max-width:400px;box-shadow:var(--shadow-e3);padding:var(--space-8) var(--space-6)}.login-logo{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);background:var(--lime);color:var(--on-lime);letter-spacing:-.02em;margin-bottom:var(--space-5);padding:10px 14px;font-size:1.05rem;font-weight:800;display:inline-flex}.login-title{letter-spacing:-.03em;color:var(--text-primary);font-size:1.5rem;font-weight:800;line-height:1.2}.login-subtitle{margin-top:var(--space-2);color:var(--text-muted);font-size:.875rem;line-height:1.5}.login-form{gap:var(--space-4);margin-top:var(--space-6);flex-direction:column;display:flex}.login-password-wrap{position:relative}.login-password-wrap .form-input{padding-right:44px}.login-password-toggle{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);transition:color var(--transition), background var(--transition);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-password-toggle:hover{color:var(--text-primary);background:var(--bg-elevated)}.login-submit{width:100%;margin-top:var(--space-1);justify-content:center;padding:12px 20px;font-size:.9rem}.login-footer{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);text-align:center}.login-text-link{color:var(--primary);cursor:pointer;text-underline-offset:3px;transition:color var(--transition);background:0 0;border:none;padding:0;font-size:.825rem;font-weight:600;text-decoration:underline}.login-text-link:hover{color:var(--primary-hover)}.legal-page{min-height:100vh;padding:var(--space-6) var(--space-4) var(--space-10);background:var(--page);justify-content:center;align-items:flex-start;display:flex}.legal-card{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-card);width:100%;max-width:720px;box-shadow:var(--shadow-e3);padding:var(--space-8) var(--space-6)}.legal-header{margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--border)}.legal-title{letter-spacing:-.03em;color:var(--text-primary);margin-top:var(--space-5);font-size:1.65rem;font-weight:800;line-height:1.2}.legal-meta{margin-top:var(--space-2);color:var(--text-muted);font-size:.825rem}.legal-nav{margin-top:var(--space-3);font-size:.875rem;font-weight:600}.legal-nav a{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.legal-prose{color:var(--text-secondary);font-size:.9rem;line-height:1.65}.legal-prose h2{color:var(--text-primary);margin:var(--space-6) 0 var(--space-3);letter-spacing:-.02em;font-size:1.05rem;font-weight:700}.legal-prose p{margin:0 0 var(--space-4)}.legal-prose ul{margin:0 0 var(--space-4);padding-left:1.25rem}.legal-prose li{margin-bottom:var(--space-2)}.legal-prose a{color:var(--primary);text-underline-offset:3px;font-weight:600;text-decoration:underline}.legal-prose code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-elevated);padding:2px 6px;font-size:.82em}.legal-contact{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--border);text-align:center;color:var(--text-muted);font-size:.825rem}.legal-contact p{margin:0 0 var(--space-3)}.legal-contact a{color:var(--primary);font-weight:600}.public-legal-footer{text-align:center;margin:0;font-size:.825rem;font-weight:600}.public-legal-footer a{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.public-legal-footer a:hover{color:var(--primary-hover)}.login-modal-backdrop{z-index:200;padding:var(--space-6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a181366;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-modal{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-card);width:100%;max-width:380px;box-shadow:var(--shadow-e3);padding:var(--space-6)}@media (max-width:1024px){.kanban-board{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.kanban-board{grid-template-columns:1fr}}@media (max-width:768px){.main-content{margin-left:0}.nav-progress{left:0}.page-body{padding-left:var(--space-4);padding-right:var(--space-4)}}body.nav-drawer-open{overflow:hidden}
