:root {
  --ink: #23323a;
  --muted: #53636b;
  --soft: #62727a;
  --forest: #314b56;
  --forest-2: #355968;
  --mint: #c3d7df;
  --cream: #fff;
  --paper: #fff;
  --line: #e1e7ea;
  --clay: #9b624c;
  --amber: #b7791f;
  --blue: #45727c;
  --purple: #706690;
  --red: #b64a42;
  --shadow: 0 18px 45px rgba(31, 50, 43, .08);
  --shadow-sm: 0 8px 24px rgba(31, 50, 43, .07);
  font-family: 'DM Sans', system-ui, sans-serif;
  color: var(--ink);
  background: var(--cream);
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--cream); }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(36, 92, 78, .22); outline-offset: 2px; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, .brand { font-family: 'Manrope', sans-serif; }
.icon { display: inline-block; flex: none; vertical-align: middle; }
.portal-loading { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: #fff; color: var(--ink); }
.portal-loading p { margin: 0; font-size: 14px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 252px minmax(0, 1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 252px; padding: 26px 18px 18px; background: #12352d; color: white; display: flex; flex-direction: column; z-index: 20; }
.brand { display: flex; align-items: center; gap: 11px; font-size: 21px; font-weight: 800; letter-spacing: -.7px; padding: 0 10px 29px; cursor: pointer; }
.brand > span:last-child span { color: #a8d2c3; }
.brand-mark { width: 37px; height: 37px; display: grid; place-items: center; background: #f1ae75; color: #173f35; border-radius: 12px 12px 12px 3px; }
.brand-mark.small { width: 28px; height: 28px; border-radius: 9px 9px 9px 2px; }
.nav-label { color: #6f9b8d; font-size: 10px; font-weight: 800; letter-spacing: 1.6px; padding: 0 13px; margin-bottom: 9px; }
.nav-list { display: flex; flex-direction: column; gap: 5px; }
.nav-item { width: 100%; min-height: 45px; border: 0; color: #c4d7d0; background: transparent; border-radius: 11px; padding: 0 13px; display: flex; align-items: center; gap: 12px; cursor: pointer; text-align: left; font-size: 14px; font-weight: 600; transition: .18s ease; }
.nav-item:hover { color: white; background: rgba(255,255,255,.07); }
.nav-item.active { color: white; background: #285a4d; box-shadow: inset 3px 0 #f1ae75; }
.nav-item b { margin-left: auto; min-width: 22px; height: 22px; display: grid; place-items: center; background: var(--clay); border-radius: 99px; color: white; font-size: 11px; }
.sidebar-card { margin: auto 3px 18px; padding: 16px; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; background: rgba(255,255,255,.05); }
.sidebar-card .tiny-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: #f1ae75; background: rgba(241,174,117,.12); margin-bottom: 10px; }
.sidebar-card strong { font-size: 13px; }
.sidebar-card p { margin: 5px 0 10px; color: #9eb8af; font-size: 11px; line-height: 1.5; }
.sidebar-card .text-link { color: #cfe4dc; padding: 0; font-size: 11px; }
.user-switcher { display: flex; align-items: center; gap: 10px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.1); }
.sidebar.admin .user-switcher { margin-top: auto; }
.user-switcher > div:nth-child(2) { min-width: 0; flex: 1; }
.user-switcher strong, .user-switcher span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-switcher strong { font-size: 12px; }.user-switcher span { color: #8eafa4; font-size: 10px; margin-top: 3px; }
.avatar, .mini-avatar, .large-avatar { display: grid; place-items: center; flex: none; border-radius: 50%; font-family: 'Manrope'; font-weight: 800; }
.avatar { width: 38px; height: 38px; background: #f1ae75; color: var(--forest); font-size: 12px; }
.avatar.trade { background: #d6e9e1; }.avatar.admin { color: white; background: #706690; }
.mini-avatar { position: relative; width: 42px; height: 42px; font-size: 12px; }.mini-avatar i { position: absolute; right: 0; bottom: 1px; width: 10px; height: 10px; border-radius: 50%; background: #42a176; border: 2px solid white; }
.large-avatar { width: 66px; height: 66px; font-size: 18px; }
.sage { background: #d9ebe4 !important; color: #1d5a49 !important; }.clay { background: #f0ddd6 !important; color: #a34f34 !important; }.blue { background: #dce9ec !important; color: #35646f !important; }.gold { background: #efe7cc !important; color: #886a22 !important; }
.mobile-close, .mobile-menu, .mobile-brand { display: none; }
.scrim { display: none; }

.main { grid-column: 2; min-width: 0; }
.topbar { height: 74px; padding: 0 36px; background: rgba(255,253,250,.94); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 15; backdrop-filter: blur(12px); }
.role-switch { display: flex; padding: 4px; border-radius: 10px; background: #eeeee9; }
.role-switch button { border: 0; background: transparent; color: #7a827f; border-radius: 7px; padding: 7px 14px; font-size: 11px; font-weight: 700; cursor: pointer; }
.role-switch button.active { color: var(--forest); background: white; box-shadow: 0 2px 7px rgba(0,0,0,.07); }
.top-actions, .header-actions { display: flex; align-items: center; gap: 10px; }
.language-btn, .icon-btn { border: 1px solid var(--line); background: white; cursor: pointer; }
.language-btn { height: 36px; padding: 0 12px; border-radius: 9px; display: flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 700; }
.icon-btn { width: 36px; height: 36px; border-radius: 9px; display: inline-grid; place-items: center; padding: 0; }
.icon-btn:disabled { opacity: .5; cursor: not-allowed; }
.notification { position: relative; }.notification i { position: absolute; right: 8px; top: 7px; width: 6px; height: 6px; background: var(--clay); border-radius: 50%; border: 1px solid white; }
.page { padding: 32px 36px 52px; max-width: 1560px; margin: 0 auto; }

.btn { min-height: 40px; border-radius: 10px; padding: 0 17px; border: 1px solid transparent; display: inline-flex; justify-content: center; align-items: center; gap: 7px; font-size: 13px; font-weight: 700; cursor: pointer; transition: transform .15s, background .15s; }
.btn:hover { transform: translateY(-1px); }.btn.primary { color: white; background: var(--forest); }.btn.primary:hover { background: #215649; }.btn.secondary { color: var(--forest); background: white; border-color: #d9e0dc; }.btn.ghost { color: #4e5a56; background: transparent; border-color: #dfe4e1; }.btn.danger { color: #a6433c; background: #fff8f7; border-color: #efd3d0; }.btn.small { min-height: 34px; padding: 0 12px; font-size: 11px; }.btn.full { width: 100%; }
.account-tabs { display: inline-flex; max-width: 100%; gap: 4px; padding: 5px; margin-bottom: 22px; border: 1px solid #c5d7df; border-radius: 15px; background: #eaf2f5; }
.account-tabs button { display: inline-flex; justify-content: center; align-items: center; gap: 9px; min-width: 148px; min-height: 42px; padding: 0 18px; border: 0; border-radius: 10px; background: transparent; color: var(--forest); font-size: 13px; font-weight: 750; line-height: 1; cursor: pointer; transition: background .18s, box-shadow .18s, color .18s; }
.account-tabs button:hover { background: rgba(255,255,255,.62); }
.account-tabs button.active { background: #fff; color: var(--ink); box-shadow: 0 2px 8px rgba(31, 50, 67, .12); }
.account-tabs button.active svg { color: #98654e; }
.account-filters { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }
.account-filters .field { min-width: 155px; flex: 1; margin: 0; }
.account-filters .field:first-child { flex: 2; }
.account-list-title { margin: 0 0 14px; font-size: 18px; }
.account-actions, .account-pagination { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.account-pagination { justify-content: flex-end; margin-top: 18px; }
.account-notice { padding: 12px 16px; border-radius: 10px; background: #e4f0ea; color: #244f43; }
@media (max-width: 720px) { .account-filters .field, .account-filters .field:first-child { flex: 1 1 100%; } .account-tabs { display: flex; width: 100%; } .account-tabs button { flex: 1; min-width: 0; } }
.text-link, .plain-row { border: 0; background: none; color: var(--forest-2); cursor: pointer; font-weight: 700; display: inline-flex; align-items: center; gap: 4px; }
.eyebrow { color: var(--clay); font-size: 10px; font-weight: 800; letter-spacing: 1.7px; }

.welcome-row { min-height: 210px; padding: 37px 42px; border-radius: 24px; background: var(--forest); color: white; position: relative; overflow: hidden; display: flex; align-items: center; }
.welcome-row:before, .welcome-row:after { content: ''; position: absolute; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }.welcome-row:before { width: 330px; height: 330px; right: -70px; top: -145px; }.welcome-row:after { width: 200px; height: 200px; right: 75px; bottom: -125px; }
.welcome-row > div:first-child { position: relative; z-index: 1; }.welcome-row > div > span { color: #a9cbc0; font-size: 12px; font-weight: 600; }.welcome-row h1 { margin: 9px 0 8px; font-size: clamp(28px, 3vw, 40px); letter-spacing: -1.5px; }.welcome-row p { margin: 0; max-width: 620px; color: #c5d8d1; font-size: 14px; line-height: 1.55; }
.welcome-art { position: absolute; right: 80px; top: 48px; width: 115px; height: 115px; border-radius: 30px 30px 30px 8px; display: grid; place-items: center; color: #183f35; background: #f1ae75; transform: rotate(6deg); z-index: 2; box-shadow: 0 20px 50px rgba(0,0,0,.18); }.welcome-art span { transform: rotate(-6deg); }.welcome-art i,.welcome-art b { position:absolute;border-radius:50%;background:#a9d1c3 }.welcome-art i { width:22px;height:22px;right:-25px;top:7px }.welcome-art b { width:10px;height:10px;left:-25px;bottom:9px }
.search-panel { width: calc(100% - 84px); min-height: 79px; margin: -24px auto 0; padding: 11px; display: grid; grid-template-columns: 1.2fr .8fr auto; gap: 6px; border-radius: 16px; background: white; box-shadow: var(--shadow); position: relative; z-index: 4; }
.search-field { min-width: 0; display: flex; align-items: center; gap: 13px; padding: 0 14px; border-right: 1px solid var(--line); color: var(--forest-2); }.search-field.location { border: 0; }.search-field > span { min-width: 0; flex: 1; }.search-field small { display: block; color: #909a96; font-size: 9px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; margin-bottom: 3px; }.search-field input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-weight: 600; font-size: 13px; }.search-field input::placeholder { color: #9aa3a0; }.search-btn { min-width: 112px; }
.content-section { padding-top: 40px; }.section-title, .panel-title, .page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }.section-title h2, .panel-title h2 { margin: 5px 0 0; font-size: 20px; letter-spacing: -.6px; }.page-heading { margin-bottom: 27px; }.page-heading h1 { margin: 5px 0 7px; font-size: 30px; letter-spacing: -1.1px; }.page-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.category-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 17px; }.category-card { min-width: 0; padding: 17px 12px; border: 1px solid var(--line); background: var(--paper); border-radius: 15px; text-align: left; cursor: pointer; transition: .18s ease; }.category-card:hover,.category-card.selected { transform: translateY(-3px); border-color: #b9cfc6; box-shadow: var(--shadow-sm); }.category-icon { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; font-family: serif; font-size: 23px; margin-bottom: 16px; }.category-icon.plumbing{background:#dfeeee;color:#36727d}.category-icon.electrical{background:#f6ebcb;color:#9a721c}.category-icon.cleaning{background:#eedfe8;color:#8b5576}.category-icon.handyman{background:#f1e0d9;color:#a85439}.category-icon.moving{background:#dfe8f0;color:#466d8a}.category-icon.landscaping{background:#dfeadd;color:#4b7147}.category-card strong,.category-card small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.category-card strong { font-size: 13px; }.category-card small { margin-top: 4px; color: var(--soft); font-size: 10px; }
.subcategory-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.subcategory-row .filter{min-height:48px;padding:10px 18px;border-radius:13px;font-size:14px;line-height:1.2}.subcategory-row .filter.active{background:#c3d7df;color:#1d3540;border-color:#aec9d3}.category-editor{padding:22px;margin-bottom:18px}.category-editor .panel-title{display:flex;align-items:center;justify-content:space-between}.category-editor .form-error{display:block;margin-top:16px;color:#a3453c}.category-editor .form-error[hidden]{display:none}.category-editor .form-actions{margin-top:18px}
.category-group-row{background:#f4f8f9}.category-group-row td{border-top:1px solid #c3d7df}.category-branch-row .category-name{padding-left:18px}.category-branch-row .category-name small{color:#5e6965}
.notification-wrap{position:relative}.notification-menu{position:absolute;right:0;top:44px;width:min(360px,calc(100vw - 32px));max-height:440px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px #182c3033;z-index:100;padding:14px}.notification-menu .panel-title{display:flex;align-items:center;justify-content:space-between}.notification-menu h3{margin:0;font-size:14px}.notification-menu>p{font-size:11px;color:var(--muted)}.notification-item{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:12px;text-align:left;cursor:pointer}.notification-item.unread{background:#ecf3f5}.notification-item strong,.notification-item span,.notification-item small{display:block}.notification-item strong{font-size:11px}.notification-item span,.notification-item small{font-size:9px;color:var(--muted);margin-top:3px}.detail-panel{padding:24px;margin-top:16px}.detail-panel .panel-title{display:flex;justify-content:space-between;align-items:center}.detail-panel h2{font-size:18px}.detail-panel h3{font-size:13px;margin-top:18px}.detail-panel p{font-size:11px;line-height:1.6;white-space:pre-wrap}.detail-form{display:grid;gap:12px;max-width:640px;margin-top:14px}.detail-form .btn{justify-self:start}.operation-error{margin:14px 0;color:#a3453c}.empty-inline{padding:20px;color:var(--muted)}button.document-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}button.document-row.selected{background:#edf3f1}.support-replies>div{border-top:1px solid var(--line);padding:9px 0}.support-replies strong,.support-replies small{font-size:10px;margin-right:8px}.support-replies p{margin:5px 0}
.admin-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.filter-row,.segmented { display: flex; gap: 6px; }.filter,.segmented button { min-height: 32px; padding: 0 11px; border: 1px solid var(--line); background: white; color: #707a76; border-radius: 9px; font-size: 10px; font-weight: 700; cursor: pointer; }.filter.active,.segmented button.active { background: var(--mint); color: var(--forest); border-color: #c5dcd3; }
.trade-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; margin-top: 17px; }.trade-card { min-width: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 17px; overflow: hidden; box-shadow: 0 4px 14px rgba(31,50,43,.025); transition: .2s ease; }.trade-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }.trade-cover { height: 92px; position: relative; display: grid; place-items: center; }.trade-cover > span { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 17px; background: rgba(255,255,255,.7); font-family: 'Manrope'; font-weight: 800; font-size: 17px; box-shadow: 0 7px 18px rgba(0,0,0,.07); }.save-button { position: absolute; right: 12px; top: 12px; width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 9px; background: rgba(255,255,255,.84); color: #6d7974; cursor: pointer; }.save-button.saved { color: var(--clay); }.save-button.saved svg { fill: currentColor; }.trade-body { padding: 16px; }.trade-title { display: flex; align-items: center; }.trade-title > div { min-width: 0; flex: 1; }.trade-title small { color: var(--clay); font-size: 9px; font-weight: 800; text-transform: uppercase; }.trade-title h3 { margin: 4px 5px 0 0; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.rating { display: inline-flex; gap: 4px; align-items: center; color: #bc7d22; font-size: 11px; }.rating svg { fill: currentColor; }.rating strong { color: var(--ink); }.review-count { color: var(--soft); font-size: 10px; }.badge-row { display: flex; gap: 5px; margin: 12px 0; flex-wrap: wrap; }.verified-badge,.muted-badge { display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; border-radius: 7px; font-size: 9px; font-weight: 700; }.verified-badge { background: #e2efe9; color: #286250; }.muted-badge { background: #f0f1ed; color: #69726e; }.tag-list { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 15px; }.tag-list span { color: #69736f; font-size: 9px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; }.trade-meta { padding: 12px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; }.trade-meta span:last-child { border-left: 1px solid var(--line); padding-left: 12px; }.trade-meta small,.trade-meta strong { display: block; }.trade-meta small { color: var(--soft); font-size: 9px; }.trade-meta strong { margin-top: 3px; font-size: 11px; }
.trust-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; padding: 23px 28px; border: 1px solid var(--line); border-radius: 17px; background: #edf2ee; margin-top: 40px; }.trust-strip > div { display: flex; align-items: center; gap: 13px; }.trust-strip > div + div { border-left: 1px solid #d7dfda; padding-left: 24px; }.trust-strip > div > span { color: var(--forest-2); }.trust-strip p,.trust-strip strong,.trust-strip small { display: block; margin: 0; }.trust-strip strong { font-size: 12px; }.trust-strip small { color: var(--muted); font-size: 10px; margin-top: 3px; }

.panel { background: var(--paper); border: 1px solid var(--line); border-radius: 17px; box-shadow: 0 3px 15px rgba(31,50,43,.025); }.status { width: max-content; display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 99px; background: #e1efe9; color: #28624f; font-size: 9px; font-weight: 800; white-space: nowrap; }.status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }.status.amber { color: #9d681a; background: #f8ebce; }.status.blue { color: #3b6874; background: #e0edf0; }.status.purple { color: #665b87; background: #ebe8f3; }.status.red { color: #9f433d; background: #f6dfdd; }
.work-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 18px; }.work-main { min-width: 0; display: flex; flex-direction: column; gap: 16px; }.next-step-card { display: flex; align-items: center; gap: 16px; padding: 18px; background: #fae9dc; border: 1px solid #f1d6c4; border-radius: 16px; }.next-step-card.success { background: #e6f0ec; border-color: #cfe2da; }.next-step-card > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 13px; background: white; color: var(--clay); }.next-step-card > div { flex: 1; }.next-step-card small { color: var(--clay); font-size: 9px; font-weight: 800; text-transform: uppercase; }.next-step-card h2 { margin: 4px 0; font-size: 16px; }.next-step-card p { margin: 0; color: #6c6c65; font-size: 11px; }.job-progress { padding: 20px; }.timeline { display: grid; grid-template-columns: repeat(6,1fr); margin-top: 24px; }.timeline-step { position: relative; text-align: center; color: #9aa29f; }.timeline-step:before { content:''; position:absolute; left:0; right:0; top:12px; height:2px; background:#e1e5e2; }.timeline-step:first-child:before { left:50%; }.timeline-step:last-child:before { right:50%; }.timeline-step span { width:25px;height:25px;position:relative;z-index:1;margin:auto;display:grid;place-items:center;border-radius:50%;background:#eceeeb;border:3px solid var(--paper);font-size:9px;font-weight:800 }.timeline-step.done span { background:var(--forest-2);color:white }.timeline-step.done:before { background:#7eaa9c }.timeline-step small { display:block;margin-top:7px;font-size:9px;font-weight:600 }.quote-preview { overflow:hidden }.document-heading { padding:22px 24px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line) }.document-heading h2{font-size:21px;margin:4px 0}.document-heading p{margin:0;color:var(--muted);font-size:10px}.document-parties{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px 24px;background:#f7f8f5}.document-parties small,.document-parties strong,.document-parties span{display:block}.document-parties small{color:var(--soft);font-size:8px;font-weight:800;letter-spacing:1px}.document-parties strong{font-size:11px;margin:5px 0}.document-parties span{font-size:9px;color:var(--muted);line-height:1.4}.line-table-wrap{overflow:auto}.line-table{width:100%;border-collapse:collapse;min-width:650px}.line-table th{padding:10px 12px;text-align:left;background:#f0f2ee;color:#75807b;font-size:8px;text-transform:uppercase;letter-spacing:.7px}.line-table td{padding:13px 12px;border-bottom:1px solid var(--line);font-size:10px;color:#68716d}.line-table td strong{color:var(--ink)}.line-table th:first-child,.line-table td:first-child{padding-left:24px}.line-table th:last-child,.line-table td:last-child{padding-right:24px;text-align:right}.document-footer{display:grid;grid-template-columns:1fr 260px;gap:25px;padding:22px 24px}.document-footer h4{font-size:10px;margin:0 0 4px}.document-footer p{font-size:9px;color:var(--muted);line-height:1.5;margin-bottom:13px}.totals p{display:flex;justify-content:space-between;gap:20px;margin:0;padding:6px 0;color:var(--muted);font-size:10px}.totals .grand-total{margin-top:7px;padding-top:11px;border-top:1px solid var(--line);color:var(--ink);font-size:14px}.quote-actions{padding:14px 24px;border-top:1px solid var(--line);background:#fafbf8;display:flex;justify-content:flex-end;align-items:center;gap:10px}.quote-actions p{margin:0 auto 0 0;color:var(--muted);font-size:9px}.accepted-stamp{display:flex;align-items:center;gap:7px;color:var(--forest-2);font-size:11px;font-weight:800}.work-aside{display:flex;flex-direction:column;gap:14px}.provider-mini{padding:17px;display:flex;align-items:center;gap:11px}.provider-mini>div{min-width:0;flex:1}.provider-mini small{color:var(--soft);font-size:8px}.provider-mini h3{font-size:12px;margin:4px 0}.provider-mini p{margin:0}.detail-list{padding:19px}.detail-list h3{font-size:14px}.detail-list>div{display:flex;gap:10px;padding:11px 0;border-top:1px solid var(--line);color:var(--forest-2)}.detail-list p,.detail-list small,.detail-list strong{margin:0;display:block}.detail-list small{color:var(--soft);font-size:8px}.detail-list strong{color:var(--ink);font-size:10px;margin-top:3px}.report-link{border:0;background:transparent;color:#9a4a43;font-size:10px;font-weight:700;cursor:pointer}

.modal-backdrop{position:fixed;inset:0;background:rgba(17,34,29,.64);z-index:50;display:grid;place-items:center;padding:24px;backdrop-filter:blur(5px)}.profile-modal{width:min(900px,100%);max-height:90vh;overflow:auto;background:var(--paper);border-radius:22px;position:relative;box-shadow:0 30px 90px rgba(0,0,0,.25)}.modal-close{position:absolute;right:16px;top:16px;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.85);display:grid;place-items:center;cursor:pointer;z-index:2}.profile-hero{min-height:155px;padding:35px 45px;display:flex;align-items:center;gap:20px}.profile-hero h2{font-size:26px;margin:4px 0}.profile-hero p{margin:0}.profile-content{display:grid;grid-template-columns:1fr 270px;gap:35px;padding:30px 40px}.profile-main h3{font-size:19px;margin:24px 0 8px}.profile-main>p{color:var(--muted);font-size:12px;line-height:1.7}.profile-main h4{font-size:11px;margin:22px 0 9px}.profile-badges,.service-list{display:flex;gap:8px;flex-wrap:wrap}.profile-badges span,.service-list span{padding:7px 9px;border-radius:8px;background:#e6f0ec;color:var(--forest-2);display:flex;align-items:center;gap:5px;font-size:10px;font-weight:700}.service-list span{background:#f1f2ee;color:#56615d}.review-box{margin-top:25px;padding:16px;background:#f4f5f1;border-radius:12px}.review-box>div{display:flex;justify-content:space-between}.review-box>div strong{font-size:10px}.review-box p{font-size:10px;color:var(--muted);margin:8px 0}.review-box small{color:var(--soft)}.contact-card{padding:20px;border:1px solid var(--line);border-radius:15px;height:max-content}.contact-card>div{padding:13px 0;border-bottom:1px solid var(--line)}.contact-card small,.contact-card strong{display:block}.contact-card small{color:var(--soft);font-size:8px}.contact-card strong{font-size:12px;margin-top:4px}.contact-card .btn{margin-top:10px}.contact-card>p{color:var(--soft);font-size:8px;line-height:1.5;margin:12px 0 0}
.saved-grid{margin-top:0}

.public-shell { min-height: 100vh; background: #fff; }
.public-header { min-height: 76px; padding: 14px max(28px, calc((100vw - 1488px)/2)); display: flex; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); background: #fff; }
.public-brand { border: 0; background: transparent; display: inline-flex; align-items: center; gap: 12px; font-family: Manrope, sans-serif; font-size: 21px; font-weight: 800; cursor: pointer; }
.public-actions { display: flex; align-items: center; gap: 9px; }
.public-main { width: min(100%, 1560px); margin: auto; padding: 34px 36px 55px; }
.private-login { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(145deg, #fff 35%, var(--sky)); }
.private-login h1 { margin: 14px 0 3px; }
.private-login p { color: var(--muted); }
.portal-login-page { min-height: 100vh; padding: 26px; display: flex; flex-direction: column; align-items: center; background: linear-gradient(145deg, #fff 35%, var(--sky)); }
.portal-login-page > .public-brand { align-self: flex-start; }
.portal-login-card { width: min(460px, 100%); margin: auto 0; border: 1px solid var(--line); box-shadow: 0 18px 55px rgba(42, 65, 73, .12); }
.portal-login-card > p { color: var(--muted); }
.portal-login-card .btn.full + .btn.full { margin-top: 12px; }
@media(max-width:720px) {
  .public-header { padding: 12px 16px; flex-wrap: wrap; }
  .public-actions { gap: 6px; }
  .public-actions .btn { padding: 0 10px; font-size: 11px; }
  .public-main { padding: 20px 15px 65px; }
  .portal-login-page { padding: 18px; }
}

.messages-page{height:calc(100vh - 139px);min-height:620px;display:grid;grid-template-columns:250px minmax(420px,1fr) 225px;border:1px solid var(--line);border-radius:18px;background:var(--paper);overflow:hidden}.conversation-list,.chat-details{min-width:0;background:#fafaf7}.conversation-list{border-right:1px solid var(--line)}.conversation-head{padding:18px;display:flex;align-items:center;justify-content:space-between}.conversation-head h2{font-size:18px;margin:3px 0}.mini-search{margin:0 13px 10px;height:35px;border:1px solid var(--line);background:white;border-radius:9px;padding:0 10px;display:flex;align-items:center;gap:7px;color:var(--soft)}.mini-search input{width:100%;border:0;outline:0;background:transparent;font-size:10px}.conversation{width:100%;border:0;border-left:3px solid transparent;background:transparent;padding:13px 12px;display:flex;align-items:flex-start;gap:9px;text-align:left;cursor:pointer}.conversation.active{border-left-color:var(--clay);background:white}.conversation>div{min-width:0;flex:1}.conversation strong,.conversation p,.conversation small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation strong{font-size:11px}.conversation p{font-size:10px;margin:4px 0;color:#56615d}.conversation small{font-size:8px;color:var(--soft)}.conversation time{font-size:8px;color:var(--soft)}.chat-panel{min-width:0;display:flex;flex-direction:column;background:white}.chat-head{height:66px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.chat-head>div{display:flex;gap:7px}.trade-identity{display:flex;align-items:center;gap:10px}.trade-identity strong,.trade-identity small{display:block}.trade-identity strong{font-size:11px}.trade-identity strong svg{color:var(--forest-2)}.trade-identity small{font-size:8px;color:var(--soft);margin-top:3px}.context-banner{min-height:45px;padding:7px 16px;display:flex;align-items:center;gap:9px;background:#edf3ef;color:var(--forest-2);font-size:9px}.context-banner>div{flex:1}.context-banner strong,.context-banner small{display:block}.context-banner small{margin-top:2px;color:var(--muted)}.chat-body{min-height:0;flex:1;padding:16px 35px;overflow:auto;background:#fbfbf8}.day-divider{text-align:center;position:relative;margin:5px 0 18px}.day-divider:before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}.day-divider span{position:relative;background:#fbfbf8;padding:0 8px;color:var(--soft);font-size:8px}.message{width:max-content;max-width:70%;margin:7px 0;padding:10px 12px;border-radius:4px 13px 13px 13px;background:white;border:1px solid var(--line);box-shadow:0 3px 10px rgba(0,0,0,.025)}.message p{margin:0;font-size:10px;line-height:1.55}.message>small{display:block;margin-top:5px;color:var(--soft);font-size:7px}.message.outgoing{margin-left:auto;border-radius:13px 4px 13px 13px;background:#dfece7;border-color:#d1e3dc}.message.translated{border-color:#d9e7e1;background:#f2f7f4}.translation-label,.translation-card>span{color:var(--forest-2);font-size:8px;font-weight:700;margin-bottom:6px}.message button,.translation-card button{border:0;background:transparent;padding:0;color:var(--forest-2);font-size:8px;font-weight:700;cursor:pointer}.translation-card{margin-top:8px;padding-top:8px;border-top:1px solid #d1ddd7}.translation-card p{margin:3px 0 5px}.inline-doc{width:min(410px,80%);margin:12px 0;padding:14px;border:1px solid #d8e3de;border-radius:13px;background:white;box-shadow:var(--shadow-sm)}.inline-doc-head{display:flex;align-items:center;gap:8px}.inline-doc-head>span:first-child{width:34px;height:34px;border-radius:9px;background:#e2efe9;color:var(--forest-2);display:grid;place-items:center}.inline-doc-head>div{flex:1}.inline-doc-head small,.inline-doc-head strong{display:block}.inline-doc-head small{font-size:7px;color:var(--soft)}.inline-doc-head strong{font-size:10px;margin-top:2px}.inline-amount{display:flex;justify-content:space-between;align-items:center;padding:13px 0}.inline-amount small,.inline-amount strong{display:block}.inline-amount small{font-size:8px;color:var(--soft)}.inline-amount strong{font-size:9px;margin-top:3px}.inline-amount>b{text-align:right;font-size:17px}.inline-amount>b small{font-size:7px;font-weight:500;margin-top:2px}.ai-detection{width:min(410px,80%);margin:11px 0;padding:10px 12px;display:flex;align-items:center;gap:8px;border:1px dashed #d7b898;background:#fff8ef;border-radius:11px;color:#93642f}.ai-detection>div{flex:1}.ai-detection strong{font-size:9px}.ai-detection p{font-size:8px;margin:3px 0 0}.composer{padding:10px 14px;border-top:1px solid var(--line)}.quick-replies{display:flex;gap:5px;overflow:auto;margin-bottom:7px}.quick-replies button{flex:none;border:1px solid var(--line);border-radius:99px;background:white;padding:5px 8px;color:var(--muted);font-size:8px;cursor:pointer}.composer-box{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid #d7ded9;border-radius:11px}.composer textarea{min-width:0;flex:1;border:0;outline:0;resize:none;padding:8px;font-size:10px}.send-btn{width:33px;height:33px;border:0;border-radius:9px;background:var(--forest);color:white;display:grid;place-items:center;cursor:pointer}.composer>small{display:block;margin-top:5px;color:var(--soft);font-size:7px}.chat-details{border-left:1px solid var(--line);padding:20px 16px}.detail-profile{text-align:center}.detail-profile .large-avatar{margin:0 auto 8px}.detail-profile h3{font-size:12px;margin-bottom:3px}.detail-profile p{margin-bottom:13px}.detail-section{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.detail-section h4{font-size:9px;color:var(--soft);text-transform:uppercase}.detail-section p,.plain-row{width:100%;display:flex;align-items:center;gap:7px;font-size:9px;padding:7px 0;margin:0}.detail-section p span,.plain-row svg{margin-left:auto}.plain-row{justify-content:space-between}.plain-row.danger{color:var(--red)}

.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.metric-card{min-width:0;padding:17px;background:var(--paper);border:1px solid var(--line);border-radius:15px;display:flex;gap:12px;align-items:flex-start}.metric-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:#e3eee9;color:var(--forest-2)}.metric-card.amber .metric-icon{background:#f7ead0;color:#9e6b20}.metric-card.blue .metric-icon{background:#e0ebee;color:#3e6b75}.metric-card>div{min-width:0}.metric-card small,.metric-card strong,.metric-card p{display:block}.metric-card small{color:var(--soft);font-size:8px;font-weight:800;letter-spacing:.5px}.metric-card strong{font-family:'Manrope';font-size:22px;margin:4px 0}.metric-card p{margin:0;color:var(--muted);font-size:9px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);gap:16px;margin-bottom:16px}.attention-panel,.availability-card,.jobs-table-panel,.audit-preview{padding:20px}.attention-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.attention-row:last-child{border:0}.attention-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#e3eee9;color:var(--forest-2)}.attention-icon.amber{background:#f7ead0;color:#9e6b20}.attention-icon.blue{background:#e0ebee;color:#3e6b75}.attention-row strong{font-size:11px}.attention-row p{font-size:9px;color:var(--muted);margin:3px 0}.attention-row>small{font-size:8px;color:var(--soft)}.availability-top{display:flex;align-items:center;gap:10px}.availability-top>span{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:#e1efe9;color:var(--forest-2)}.availability-top>div{flex:1}.availability-top small{font-size:8px;color:var(--soft)}.availability-top h3{font-size:14px;margin:3px 0}.switch{display:inline-flex;align-items:center}.switch input{display:none}.switch span{width:30px;height:17px;padding:2px;background:#c8cecb;border-radius:99px;cursor:pointer}.switch span:after{content:'';display:block;width:13px;height:13px;border-radius:50%;background:white;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:.15s}.switch input:checked+span{background:var(--forest-2)}.switch input:checked+span:after{transform:translateX(13px)}.switch.large span{width:38px;height:21px}.switch.large span:after{width:17px;height:17px}.switch.large input:checked+span:after{transform:translateX(17px)}.availability-card>p{font-size:10px;color:var(--muted);line-height:1.5;margin:15px 0}.availability-slots{margin-bottom:13px}.availability-slots div{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid var(--line);font-size:9px}.responsive-table{overflow:auto}.data-table{width:100%;min-width:760px;border-collapse:collapse;margin-top:14px}.data-table th{padding:9px;text-align:left;color:var(--soft);font-size:8px;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--line)}.data-table td{padding:12px 9px;border-bottom:1px solid var(--line);font-size:10px;color:#5e6965}.data-table tbody tr:last-child td{border:0}.data-table td>strong{color:var(--ink)}.block{display:block;color:var(--soft);font-size:8px;margin-top:3px}.customer-cell{display:flex;align-items:center;gap:8px}.customer-cell>span{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#e5eee9;color:var(--forest-2);font-size:9px;font-weight:800}.customer-cell p{margin:0}.customer-cell strong,.customer-cell small{display:block}.customer-cell strong{font-size:10px}.customer-cell small{font-size:8px;color:var(--soft);margin-top:3px}.inquiry-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px}.inquiry-list{display:grid;gap:12px}.inquiry-card{padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:15px}.inquiry-card.featured{border-left:4px solid var(--clay)}.inquiry-person{display:flex;align-items:center;gap:9px}.inquiry-person>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e2eee9;color:var(--forest-2);font-size:9px;font-weight:800}.inquiry-person>div{flex:1}.inquiry-person strong,.inquiry-person small{display:block}.inquiry-person strong{font-size:10px}.inquiry-person small,.inquiry-person time{font-size:8px;color:var(--soft)}.inquiry-card h3{font-size:14px;margin:13px 0 6px}.inquiry-card>p{font-size:10px;color:var(--muted);line-height:1.6}.inquiry-footer{display:flex;align-items:center;justify-content:space-between}.inquiry-footer>span{color:var(--muted);font-size:8px}.tips-card{height:max-content;padding:22px;background:#173f35;color:white}.tips-card>span{color:#f1ae75}.tips-card h3{font-size:16px;margin:15px 0 8px}.tips-card p,.tips-card li{color:#b8cec6;font-size:9px;line-height:1.6}.tips-card ul{padding-left:16px}.summary-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.summary-tabs button{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:13px 16px;text-align:left;cursor:pointer}.summary-tabs button.active{border-color:#aac9bd;box-shadow:inset 0 -3px var(--forest-2)}.summary-tabs strong,.summary-tabs span{display:block}.summary-tabs strong{font-family:'Manrope';font-size:18px}.summary-tabs span{font-size:9px;color:var(--muted);margin-top:3px}.toolbar{display:flex;align-items:center;gap:7px}.mini-search.wide{width:min(380px,100%);margin:0 auto 0 0}.document-builder{background:var(--paper);border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:var(--shadow-sm)}.document-brand{display:flex;justify-content:space-between;align-items:flex-start;padding:30px 34px;border-bottom:1px solid var(--line)}.business-lockup{display:flex;align-items:center;gap:15px}.business-lockup h2{font-size:17px;margin:0 0 5px}.business-lockup p{font-size:9px;color:var(--muted);margin:2px 0}.document-type{text-align:right}.document-type span,.document-type strong,.document-type small{display:block}.document-type span{font-family:'Manrope';font-size:24px;font-weight:800;color:var(--forest)}.document-type strong{font-size:12px;margin:4px 0}.document-type small{font-size:8px;color:var(--soft)}.builder-fields{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:22px 34px;background:#f7f8f5;border-bottom:1px solid var(--line)}.span-2{grid-column:span 2}.field>span{display:block;color:#6e7874;font-size:9px;font-weight:700;margin-bottom:6px}.field>span i{font-weight:500;color:var(--soft)}.field input,.field textarea,.field select,.hours-row input{width:100%;border:1px solid #dbe1dd;border-radius:8px;background:white;padding:9px 10px;font-size:10px;color:var(--ink);outline:0}.field textarea{min-height:78px;resize:vertical;line-height:1.5}.field input:read-only{background:#eef0ed;color:#78817d}.builder-section-head{display:flex;justify-content:space-between;align-items:center;padding:20px 34px 12px}.builder-section-head h3{font-size:14px;margin:0 0 3px}.builder-section-head p{font-size:9px;color:var(--muted);margin:0}.line-table input{width:100%;min-width:90px;border:1px solid #dbe1dd;border-radius:7px;padding:7px;font-size:9px}.line-table .number-input{min-width:58px;max-width:75px}.line-table td small{font-size:7px;margin-left:2px}.remove-line{width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:7px;background:#f6e9e7;color:var(--red);cursor:pointer}.add-line-wide{width:calc(100% - 68px);margin:10px 34px 20px;padding:9px;border:1px dashed #b9c9c3;border-radius:8px;background:#f8faf8;color:var(--forest-2);font-size:9px;font-weight:700;cursor:pointer}.builder-bottom{display:grid;grid-template-columns:1fr 320px;gap:35px;padding:24px 34px;border-top:1px solid var(--line)}.notes-fields{display:grid;gap:12px}.builder-summary{padding:17px;background:#f5f6f2;border-radius:12px}.tax-setting,.summary-row,.balance-line{display:flex;justify-content:space-between;align-items:center}.tax-setting{padding-bottom:13px;margin-bottom:7px;border-bottom:1px solid var(--line)}.tax-setting strong,.tax-setting small{display:block}.tax-setting strong{font-size:10px}.tax-setting small{font-size:8px;color:var(--soft);margin-top:3px}.summary-row{font-size:9px;margin:10px 0}.summary-row input{width:85px;border:1px solid var(--line);padding:7px;border-radius:7px;text-align:right}.balance-line{padding-top:12px;border-top:1px solid #ccd4cf;font-size:13px}.builder-summary>p{font-size:8px;color:var(--soft);line-height:1.4;margin:14px 0 0}.document-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 34px;border-top:1px solid var(--line);background:#fafbf8}.availability-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}.weekly-hours{padding:22px}.hours-row{min-height:56px;display:grid;grid-template-columns:auto 120px 115px auto 115px;gap:10px;align-items:center;border-top:1px solid var(--line);font-size:10px}.hours-row:first-of-type{margin-top:15px}.hours-row em{grid-column:3/6;color:var(--soft);font-style:normal}.timezone-card{padding:18px;display:flex;gap:11px}.timezone-card>span{color:var(--forest-2)}.timezone-card small,.timezone-card strong{display:block}.timezone-card small{font-size:8px;color:var(--soft)}.timezone-card strong{font-size:10px;margin:3px 0}.timezone-card p{font-size:8px;color:var(--muted);margin:0}.calendar-list{padding:18px;margin-top:14px}.calendar-list>h3{font-size:13px}.empty-state{grid-column:1/-1;padding:40px 20px;text-align:center;border:1px dashed #cad4cf;border-radius:14px;background:#fafbf8}.empty-state>span{width:50px;height:50px;display:grid;place-items:center;margin:0 auto 12px;border-radius:50%;background:#e4eee9;color:var(--forest-2)}.empty-state h3{font-size:13px;margin-bottom:5px}.empty-state p{color:var(--muted);font-size:9px;margin-bottom:13px}.settings-layout{display:grid;grid-template-columns:210px 1fr;gap:16px}.settings-tabs{display:flex;flex-direction:column;gap:4px}.settings-tabs button{border:0;background:transparent;border-radius:9px;padding:11px 13px;text-align:left;color:var(--muted);font-size:10px;font-weight:700;cursor:pointer}.settings-tabs button.active{background:#e2ece7;color:var(--forest)}.settings-form{padding:26px}.settings-form h2{font-size:18px;margin-bottom:5px}.settings-form>p{color:var(--muted);font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:22px}.full-span{grid-column:1/-1}.check-chips{display:flex;gap:6px;flex-wrap:wrap}.check-chips label{padding:8px;border:1px solid var(--line);border-radius:8px;font-size:9px}.form-actions{display:flex;justify-content:flex-end;margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}
/* Saved trade availability */
.availability-accept{display:flex;align-items:center;gap:8px;margin:16px 0;font-size:11px;font-weight:700}
.hours-row input:disabled{opacity:.45}
.time-off-item{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.time-off-item strong,.time-off-item small{display:block;font-size:10px}
.time-off-item small{color:var(--muted);margin-top:4px}
.time-off-form{display:grid;gap:10px;margin-top:16px}
/* Invoice payment choices */
.payment-panel{margin-top:16px;padding:24px}.payment-panel>p{font-size:13px;line-height:1.6}.payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.payment-method{padding:17px;border:1px solid var(--line);border-radius:12px;background:#fff}.payment-method:first-child{grid-column:1/-1;background:#f5f9fa}.payment-method>strong{font-size:14px}.payment-method p{font-size:12px;line-height:1.6;color:var(--muted)}.payment-method .field{margin:12px 0}.payment-method button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:700px){.payment-methods{grid-template-columns:1fr}}
.payment-method.preferred{border-color:#8eb8c8;box-shadow:0 0 0 2px rgba(195,215,223,.45)}#payment-preference-form{margin-top:16px}#payment-preference-form .field{max-width:430px;margin:16px 0}
.payout-settings{margin:16px 0}.payout-settings .field{max-width:460px;margin:18px 0}.payout-connection{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.payout-connection h3{font-size:15px}.payout-connection small{display:block;margin-top:10px;color:var(--muted);font-size:11px}.payout-connection button:disabled{opacity:.6;cursor:not-allowed}
.payout-settings #trade-payout-form .field{display:block;margin-bottom:0}.payout-settings #trade-payout-form .field small{display:block;margin-top:9px;color:var(--muted);font-size:11px;line-height:1.5}.payout-actions{display:flex;align-items:center;margin-top:20px}.payout-actions .btn{min-height:42px;padding:0 20px;white-space:normal;text-align:center}@media(max-width:480px){.payout-actions .btn{width:100%}}
.work-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:220px}.work-row-actions .block{flex-basis:100%;margin:0}.work-row-actions>span{font-size:10px;color:var(--muted)}
.required-mark{color:#aa533e;font-weight:800;margin-left:2px}.required-note{color:var(--muted);font-size:11px;margin:0 0 4px}.required-note .required-mark{margin-left:0}

/* Keep the labelled sign-out control available on small portal headers. */
.sign-out-btn { white-space: nowrap; flex-shrink: 0; min-height: 36px; padding: 0 12px; }
@media (max-width: 720px) {
  .topbar { min-height: 74px; height: auto; flex-wrap: wrap; gap: 8px; padding-top: 10px; padding-bottom: 10px; }
  .top-actions { margin-left: auto; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
  .top-actions .sign-out-btn { padding: 0 10px; font-size: 12px; }
}

/* Work selection stays separate from the details card, including wrapped rows. */
.work-order-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 10px;
  margin: 18px 0 22px;
}
.work-order-tabs .filter {
  min-height: 44px;
  height: auto;
  max-width: 100%;
  padding: 10px 18px;
  border-radius: 13px;
  font-size: 14px;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
}
.received-payment-form {
  display: grid;
  gap: 14px;
  width: 100%;
  max-width: 360px;
  min-width: 0;
  padding-top: 14px;
}
.received-payment-form p, .received-payment-form .field { margin: 0; }
.received-payment-form .check-field {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  line-height: 1.5;
}
.received-payment-form .check-field input {
  flex: 0 0 auto;
  margin: 4px 0 0;
}
.received-payment-form > .btn {
  justify-self: start;
  max-width: 100%;
  height: auto;
  min-height: 44px;
  margin-top: 4px;
  padding: 11px 18px;
  line-height: 1.4;
  white-space: normal;
}

/* Give each Work row a clear invoice summary and a separate receipt action group. */
.trade-work-table td { vertical-align: top; padding: 20px 14px; }
.trade-work-table th { padding-left: 14px; padding-right: 14px; }
.trade-work-table td:last-child { width: 46%; }
.trade-work-actions { display: grid; gap: 14px; min-width: 280px; max-width: 460px; }
.trade-action-buttons { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.trade-action-buttons .btn { min-height: 36px; padding: 8px 13px; font-size: 12px; line-height: 1.35; white-space: normal; }
.trade-invoice-summary { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #f8fbfc; }
.trade-invoice-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px 20px; }
.trade-invoice-heading small { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; letter-spacing: .05em; }
.trade-invoice-heading strong { display: block; color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.trade-invoice-balance { margin-left: auto; text-align: right; }
.trade-invoice-balance strong { font-size: 18px; }
.trade-action-note { display: block; margin: 0; font-size: 12px; line-height: 1.6; color: var(--muted); }
.trade-payment-report { display: grid; gap: 10px; margin-top: 15px; padding: 14px; background: #f7eee5; border: 1px solid #e9dacb; border-radius: 10px; }
.trade-payment-heading { display: flex; gap: 7px; align-items: center; color: var(--forest); font-size: 12px; }
.trade-payment-reference { margin: 0; font-size: 12px; overflow-wrap: anywhere; }
.trade-rating-note { margin-top: 13px; }
.trade-invoice-summary .payment-receipt-history { margin-top: 12px; }
.trade-invoice-summary .payment-receipt-history .block { font-size: 12px; line-height: 1.6; }
@media (max-width: 720px) {
  .trade-work-table td:last-child { width: auto; }
  .trade-work-actions { min-width: 250px; }
  .trade-payment-report .trade-action-buttons .btn { flex: 1; }
}

.customer-work-filters { gap: 4px; }
.customer-work-filters button { min-width: 0; }
.customer-work-filters button > span { min-width: 23px; padding: 2px 6px; border-radius: 12px; background: #e5eef1; font-size: 11px; }
.customer-work-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.customer-work-row { display: flex; align-items: center; gap: 16px; width: 100%; padding: 21px 24px; border: 1px solid var(--line); border-radius: 16px; background: white; color: var(--ink); text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.customer-work-row:hover { border-color: #aec9d3; box-shadow: var(--shadow-sm); }
.customer-work-row:focus-visible { outline: 3px solid var(--forest); outline-offset: 3px; }
.customer-work-icon { display: inline-grid; place-items: center; width: 46px; height: 46px; flex: 0 0 auto; border-radius: 13px; background: #eaf2f5; color: var(--forest); }
.customer-work-info { display: grid; gap: 6px; min-width: 0; flex: 1; overflow-wrap: anywhere; }
.customer-work-info strong { font-size: 15px; }
.customer-work-info > span { font-size: 13px; color: var(--muted); }
.customer-work-info small { font-size: 11px; color: var(--soft); }
.customer-work-state { display: grid; justify-items: end; gap: 7px; max-width: 220px; text-align: right; }
.customer-work-state > small { font-size: 11px; color: var(--muted); line-height: 1.4; }
.customer-work-badge { display: inline-block; padding: 7px 12px; border-radius: 20px; white-space: nowrap; font-size: 12px; font-weight: 700; }
.customer-work-badge.is-active { background: #e7f0f4; color: #315868; }
.customer-work-badge.is-complete { background: #e4f1e9; color: #2c6746; }
.customer-work-badge.is-closed { background: #f5ece4; color: #855c42; }
.customer-work-arrow { display: inline-flex; color: var(--muted); }
.customer-work-empty { padding: 28px; }
.work-detail-navigation { margin: 0 0 20px; }
.work-detail-navigation .icon { transform: rotate(180deg); }
@media (max-width: 600px) {
  .customer-work-row { flex-wrap: wrap; gap: 12px; padding: 17px; }
  .customer-work-state { margin-left: 58px; justify-items: start; text-align: left; max-width: calc(100% - 80px); }
  .customer-work-info { flex-basis: calc(100% - 64px); }
  .customer-work-arrow { margin-left: auto; }
  .customer-work-filters { width: 100%; }
  .customer-work-filters button { padding: 0 9px; gap: 5px; font-size: 12px; }
}

.google-reviews-link { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 10px 0; color: var(--forest); font-size: 12px; font-weight: 700; text-decoration: none; }
.google-reviews-link:hover { text-decoration: underline; }
.google-reviews-link:focus-visible { outline: 2px solid var(--forest); outline-offset: 4px; }
.google-link-settings form { display: grid; gap: 12px; }
.google-link-settings .field { margin: 0; }
.google-link-settings .account-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.google-link-note { display: block; margin-top: 16px; color: var(--muted); line-height: 1.6; }

.work-title-link { display: inline-flex; align-items: center; gap: 7px; border: 0; padding: 3px 0; background: transparent; color: var(--forest); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.work-title-link:hover { text-decoration: underline; }
.work-title-link:focus-visible { outline: 2px solid var(--forest); outline-offset: 4px; }
.trade-work-detail { grid-template-columns: minmax(0,1fr) minmax(290px,350px); align-items: start; }
.work-detail-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 18px 0; }
.work-detail-fields dt { font-size: 12px; color: var(--muted); margin-bottom: 5px; }
.work-detail-fields dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.work-detail-description { white-space: pre-wrap; overflow-wrap: anywhere; }
.work-detail-record + .work-detail-record { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 18px; }
.trade-work-detail .trade-work-actions { min-width: 0; max-width: 100%; }
.trade-work-detail .work-aside { min-width: 0; }
@media (max-width: 1000px) { .trade-work-detail { grid-template-columns: minmax(0,1fr); } }
@media (max-width: 600px) { .work-detail-fields { grid-template-columns: minmax(0,1fr); } }

.schedule-agenda,.holiday-hours {padding:24px;margin-bottom:24px;min-width:0}
.schedule-toolbar,.schedule-view-buttons,.schedule-navigation,.schedule-record-actions {display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.schedule-toolbar {justify-content:space-between}
.schedule-navigation input {min-height:40px;max-width:100%;border:1px solid var(--border,#d7e0e3);border-radius:10px;padding:8px;background:white;color:inherit}
.schedule-range {margin:20px 0;color:#526973}
.schedule-day {border-top:1px solid #d7e0e3;padding:18px 0}
.schedule-day.is-today>h3 {color:#345d6b}
.schedule-day>h3 {font-size:15px;margin:0 0 12px}
.schedule-appointment {display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr) auto;gap:18px;padding:16px;border-radius:12px;background:#f1f6f7;margin-top:10px;align-items:start}
.schedule-time {display:grid;gap:10px;justify-items:start}
.schedule-job {min-width:0;overflow-wrap:anywhere}
.schedule-job p,.schedule-empty {font-size:13px;color:#526973}
.schedule-record-actions {margin-top:14px}
.holiday-hours {margin-top:24px}
.holiday-hours>p {max-width:850px;color:#526973;line-height:1.7}
.holiday-hours-row {display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) minmax(100px,1fr) minmax(100px,1fr) auto;gap:16px;align-items:end;border-top:1px solid #d7e0e3;padding:18px 0}
.holiday-hours-row .field {margin:0;min-width:0}
.holiday-hours-row input,.holiday-hours-row select {width:100%;min-width:0}
.holiday-name {align-self:center;display:grid;gap:6px;overflow-wrap:anywhere}
.holiday-name small {color:#526973}
.holiday-hours-row .form-error {grid-column:1/-1;margin:0}
.booking-day-status {padding:12px;border-radius:10px;background:#edf4f6;font-size:13px;line-height:1.6}
@media(max-width:800px){.holiday-hours-row{grid-template-columns:1fr 1fr}.holiday-name{grid-column:1/-1}.schedule-appointment{grid-template-columns:1fr}.schedule-navigation{width:100%}.schedule-agenda,.holiday-hours{padding:18px}}
