:root{color-scheme:dark}body{margin:0}button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid var(--blue)}[hidden]{display:none!important}.desktop-sidebar,.desktop-heading,.desktop-bookings{display:none}.desktop-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.desktop-table{width:100%;border-collapse:collapse;min-width:760px;background:var(--surface)}.desktop-table th,.desktop-table td{border:1px solid var(--line);padding:15px 16px;text-align:left;vertical-align:middle;font-size:14px}.desktop-table th{background:var(--surface2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:500}.desktop-table td{line-height:1.5}.desktop-table td.actions{white-space:nowrap}.desktop-table .figure{font-family:'IBM Plex Mono',monospace;white-space:nowrap}.desktop-table .sb-icon{width:32px;height:34px;padding:7px;border:0;display:inline-flex}.desktop-table tr:hover td{background:#143036}#invoice-list{display:block}.desktop-table-wrap:empty{display:none}#gallery-frame{width:100%;min-height:calc(100vh - 150px);border:0}#sync-conflicts pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto}.sidebar-bottom p{font-size:11px;color:var(--muted);line-height:1.6}
@media(min-width:1000px){.shell{max-width:none;margin:0;padding:30px 32px 50px 252px}.sb-header{display:none}.desktop-sidebar{display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:220px;padding:30px 18px;border-right:1px solid var(--line);background:var(--bg);z-index:20}.desktop-brand{display:flex;align-items:center;text-decoration:none;color:var(--text);font:bold 23px Georgia,serif;letter-spacing:-1px}.desktop-brand img{width:25px;margin-right:6px}.desktop-brand span{color:var(--green)}.desktop-sidebar>small{font-size:10px;color:var(--muted);margin:8px 0 30px 33px}.desktop-sidebar nav{display:grid;gap:5px}.desktop-sidebar button{display:flex;align-items:center;gap:10px;text-align:left;border:0;background:none;color:var(--muted);padding:12px 10px;font-size:13px;min-height:42px;border-left:2px solid transparent;border-radius:6px}.desktop-sidebar button.selected{border-left-color:var(--green);background:#13352f;color:var(--text);font-weight:600}.desktop-sidebar svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;flex-shrink:0}.sidebar-bottom{margin-top:auto;padding-top:30px}.desktop-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.desktop-heading h1{margin:0;font-size:29px}.desktop-heading p{font-size:13px;color:var(--muted);margin:5px 0 0}.sb-fab{display:none}#calendar-view>.toolbar{margin-top:22px}#month{font-family:'IBM Plex Sans',Arial,sans-serif!important;font-size:18px}.stats{display:flex;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);margin-bottom:24px}.stat{flex:1;min-width:0;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:20px}.stat:last-child{border-right:0}.stat small{font-size:12px}.stat strong{font-size:24px;font-weight:400;margin-top:10px}.calendar{border-radius:12px}.weekdays{min-height:42px;text-align:left}.weekdays span{padding-left:14px;font-size:12px}.days .day{height:110px;min-height:110px;align-items:flex-start;text-align:left;padding:10px 12px;display:flex;flex-direction:column;gap:5px}.day .num{font-size:13px}.sb-dots{display:none}.desktop-bookings{display:grid;gap:4px;width:100%;font-size:11px}.desktop-bookings>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desktop-bookings i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;background:var(--green)}.desktop-bookings i.video{background:var(--blue)}.legend{display:block;text-align:right;color:var(--muted);font-size:12px}.sb-alert{padding:15px;margin-bottom:20px;font-size:13px;justify-content:flex-start}.sb-panel{padding:24px;border-radius:12px;margin-bottom:24px}.sb-panel>.row{max-width:620px}.sb-panel .stats{margin:18px 0 0}.sb-total-row{display:inline-flex;flex-direction:column;gap:12px;width:32%;border:0;vertical-align:top;padding:14px 18px}.sb-total-row strong{font-size:25px;font-weight:400}.sb-year{display:flex;align-items:center}.sb-year h2{width:120px}.sb-year .sb-total-row{flex:1}.sb-chart{height:360px}.sb-bars{height:280px}.toolbar>h2{display:none}.toolbar{justify-content:flex-end}.month-nav{margin-right:auto}.modal{min-height:0;max-height:90dvh;width:min(760px,90vw);border-radius:16px;margin:0;padding:28px;border:1px solid var(--line)}.overlay{padding:28px;align-items:center}.sb-day-footer{position:static;padding-top:20px}.sb-day-sheet{padding-bottom:28px}.sb-day-cards{gap:12px}.invoice-page{width:min(1120px,94vw);padding:0}.invoice-page-head{padding:22px 28px}.invoice-page #invoice-form{max-width:none}.sb-filter{display:block}#gallery-view{margin:-6px -12px}.sb-auth-card{padding:36px;background:var(--surface);border:1px solid var(--line);border-radius:18px;max-width:480px}.sb-auth{padding:40px}.drawer-nav svg{max-width:21px}}
@media(min-width:1000px){.shell{width:100%}.days .day{justify-content:flex-start}.legend i.photo{background:var(--green)}.desktop-tax-summary{margin-top:40px;border-top:1px solid var(--line);padding-top:28px}.desktop-tax-summary h2{font-size:25px}.desktop-tax-summary .sb-tax-total{display:flex;justify-content:space-between}.desktop-tax-summary strong{font-size:24px}#expenses-view{display:flex;flex-direction:column}#expenses-view>.toolbar{order:0}#sb-expense-tools{order:1}#expense-list{display:contents}#expense-list>.sb-panel{order:2}#expense-total{order:3}#expense-list>.desktop-table-wrap{order:4}#expenses-view>.toolbar,#invoices-view>.toolbar{margin-top:-65px;margin-bottom:24px}.toolbar>div{display:flex;gap:10px}.sb-filter summary{display:none}#download-receipts{margin-top:14px}}
#modal-root .overlay{z-index:100}@media(min-width:1000px){.desktop-client-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}}
@media(min-width:1600px){.shell{padding-right:max(40px,calc((100vw - 1550px)/2));padding-left:calc(252px + max(0px,(100vw - 1700px)/2))}.days .day{height:125px}}
/* Keep tall booking forms inside their painted, scrollable modal. */
#modal-root .overlay:not(.invoice-page-overlay){overflow:hidden;align-items:center}
#modal-root .overlay>.modal{min-height:0;max-height:calc(100dvh - 56px);overflow-y:auto;overscroll-behavior:contain;background:var(--bg)}
@media(max-width:999px){#modal-root .overlay>.modal{max-height:100dvh}}
