:root{--ink:#172d38;--muted:#70828b;--line:#e3e9ec;--bg:#f5f7f8;--nav:#122f38;--accent:#0b7c71;--soft:#e9f5f1;--shadow:0 12px 45px #18374015;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a.button{cursor:pointer}button{border:0}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #75bfb6;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #89c3bb;border-color:transparent}button{transition:background .15s,transform .15s}button:hover{filter:brightness(.97)}.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#a5bbc2;position:fixed;width:238px;height:100vh;display:flex;flex-direction:column;padding:31px 19px 20px}.brand{display:flex;gap:12px;align-items:center;color:white;padding:0 8px 31px}.brand-mark{background:var(--accent);width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-size:36px;line-height:1;color:white}.brand-title{font-size:16px;line-height:1.3;font-weight:680}.brand-title small{font-size:10px;letter-spacing:2.2px;font-weight:500;color:#a3c0c4}.workspace-label{font-size:11px;letter-spacing:1.6px;padding:12px 15px;color:#81a0a9}.nav-link{display:flex;align-items:center;gap:12px;border-radius:7px;padding:12px 15px;margin:3px 0;font-size:14px;font-weight:500;color:#adc2c8}.nav-link:hover{background:#ffffff09}.nav-link.active{background:#24505a;color:#fff}.nav-link.active:before{content:'';position:absolute;left:0;width:3px;height:25px;background:#63c8b4;border-radius:0 3px 3px 0}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.nav-count{margin-left:auto;background:#4c686f;border-radius:5px;padding:2px 6px;font-size:11px}.sidebar-bottom{margin-top:auto}.support-note{margin:25px 10px 18px;padding:16px 0;border-top:1px solid #31505a;font-size:12px;line-height:1.6}.user-block{display:flex;align-items:center;gap:10px;padding:9px 10px}.user-block b{font-size:13px;color:white;display:block}.user-block small{font-size:11px}.avatar{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;font-size:11px;font-weight:650;background:#ddece8;color:#2a6d63;flex-shrink:0}.avatar.blue{background:#e8eefb;color:#5373af}.avatar.purple{background:#efeafb;color:#8365ae}.main{grid-column:2;min-width:0}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);background:white;gap:18px}.breadcrumbs{font-size:13px;color:var(--muted);display:flex;gap:13px;align-items:center}.breadcrumbs b{font-weight:500;color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:18px}.topbar select{border:0;background:transparent;width:auto;font-size:13px;font-weight:600;padding:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:white;border-radius:7px;width:36px;height:36px;color:#5a717a;position:relative}.unread{position:absolute;top:7px;right:7px;width:6px;height:6px;background:#dca76a;border-radius:50%}.page{padding:31px 34px 40px;max-width:1700px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.eyebrow{text-transform:uppercase;letter-spacing:1.9px;font-size:11px;font-weight:650;color:var(--muted);margin:0 0 10px}h1{font-size:29px;letter-spacing:-1px;line-height:1.2;font-weight:650;margin:0 0 9px}h2{font-size:17px;letter-spacing:-.3px;font-weight:650;margin:0}h3{font-size:15px;font-weight:650;margin:0 0 6px}p{line-height:1.6}.page-head p{font-size:14px;margin:0;color:var(--muted)}.primary,.secondary,.danger,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:6px;font-size:13px;font-weight:600;white-space:nowrap}.primary{background:var(--accent);color:white;border:1px solid var(--accent)}.secondary{background:white;color:#47616c;border:1px solid #d9e2e6}.danger{background:#fff0ef;color:#a34242;border:1px solid #efcccc}.primary .icon,.secondary .icon{width:16px;height:16px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.text-button{background:none;color:var(--accent);padding:4px 0;font-size:13px;font-weight:600}.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.stat{background:white;border:1px solid var(--line);border-radius:9px;padding:19px 20px}.stat-label{display:flex;align-items:center;justify-content:space-between;color:#687e87;font-size:13px}.stat-label .icon{width:18px;height:18px;color:#8da4ab}.stat-value{font-size:31px;font-weight:600;letter-spacing:-1px;margin:12px 0 8px}.stat-foot{font-size:12px;color:var(--muted)}.stat-foot em{font-style:normal;color:var(--accent);font-weight:600}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:23px}.panel{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:22px}.panel-head{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line)}.panel-head small{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px}.pill{border-radius:5px;padding:5px 8px;display:inline-flex;align-items:center;font-size:11px;line-height:1.3;font-weight:600;white-space:nowrap;background:#f0f3f5;color:#697e88}.pill.green{background:#e8f5ee;color:#378167}.pill.amber{background:#fff3e2;color:#ad7c31}.pill.blue{background:#eaf0fd;color:#5a7ab4}.pill.purple{background:#f1eafb;color:#8b6bab}.pill.red{background:#fceced;color:#b56267}.job-row{display:grid;grid-template-columns:66px minmax(0,1fr) 115px 105px 25px;align-items:center;gap:15px;padding:18px 22px;border-bottom:1px solid #eef1f3;cursor:pointer}.job-row:hover{background:#f8fbfb}.job-row:last-child{border-bottom:0}.job-time{font-size:14px;font-weight:600}.job-time small{font-size:11px;font-weight:400;display:block;color:var(--muted);margin-top:4px}.job-name{font-size:14px;font-weight:600;display:block;margin-bottom:5px}.subtext{font-size:12px;color:var(--muted);line-height:1.5}.person{display:flex;align-items:center;gap:7px;font-size:12px}.person .avatar{width:26px;height:26px;font-size:9px}.dot-divider{padding:0 5px;color:#b5c4ca}.schedule-footer{padding:15px 22px;font-size:12px;color:var(--muted);background:#fbfcfc;display:flex;justify-content:space-between}.attention-card{padding:19px 21px;border-bottom:1px solid var(--line);cursor:pointer}.attention-card:hover{background:#fafcfc}.attention-card:last-child{border-bottom:0}.attention-top{display:flex;gap:9px;align-items:center;margin-bottom:8px}.attention-card p{font-size:12px;color:var(--muted);margin:4px 0 9px;line-height:1.55}.attention-card .person{margin-top:13px;justify-content:space-between}.mini-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:600}.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;padding:24px 22px}.pipeline-stage{cursor:pointer}.pipeline-stage span{font-size:12px;color:var(--muted)}.pipeline-stage strong{display:block;font-size:25px;font-weight:550;margin:9px 0 13px}.bar{height:5px;border-radius:3px;background:#e8eef0;overflow:hidden}.bar i{display:block;height:100%;background:#68a69b}.activity{padding:17px 22px;display:flex;gap:12px;border-bottom:1px solid #edf1f3}.activity:last-child{border-bottom:0}.activity p{font-size:13px;margin:0 0 4px}.activity time{font-size:11px;color:var(--muted)}.demo-banner{background:#edf5f7;color:#4f727d;padding:9px 16px;border:1px solid #dce9ed;border-radius:6px;font-size:12px;margin-bottom:22px;display:flex;align-items:center;gap:8px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#82939a;background:#fafcfc;padding:14px 19px;font-weight:600;border-bottom:1px solid var(--line)}td{padding:16px 19px;font-size:13px;border-bottom:1px solid #edf1f3}tr:last-child td{border-bottom:0}tbody tr[data-job],tbody tr[data-customer]{cursor:pointer}tbody tr:hover{background:#fafcfc}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}.search{width:310px;position:relative}.search input{padding-left:37px;background:white}.search .icon{position:absolute;top:11px;left:12px;width:16px;height:16px;color:var(--muted)}input,select,textarea{border:1px solid #d8e1e5;border-radius:6px;padding:10px 11px;background:white;color:var(--ink);width:100%;font-size:14px}textarea{resize:vertical;min-height:80px}label{font-size:13px;font-weight:550;display:block;color:#4e6570;margin-bottom:16px}label input,label select,label textarea{display:block;margin-top:7px}input[type=checkbox]{width:auto;display:inline-block;margin:0 8px 0 0}.toolbar select{width:auto;max-width:210px}.tabs{display:flex;gap:5px;background:#eaf0f2;padding:4px;border-radius:7px}.tabs button{font-size:12px;padding:8px 12px;border-radius:5px;background:none;color:var(--muted)}.tabs button.active{background:white;color:var(--ink);box-shadow:0 1px 4px #00000009}.board{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:18px;overflow:auto;align-items:start}.board-column{background:#edf1f3;border-radius:9px;padding:13px;min-height:360px}.board-column header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;padding:3px 3px 17px}.board-card{background:white;border:1px solid #e0e6e9;border-radius:7px;padding:16px;margin-bottom:11px;cursor:pointer;box-shadow:0 2px 3px #1f394905}.board-card:hover{border-color:#87b9b1;transform:translateY(-1px)}.board-card .job-name{margin-top:11px;line-height:1.5}.board-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:13px;border-top:1px solid #edf1f3}.empty{padding:35px 25px;text-align:center;color:var(--muted);font-size:14px;line-height:1.7}.empty .icon{width:32px;height:32px;margin-bottom:9px}.split{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}.pad{padding:22px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.detail-label{font-size:11px;color:var(--muted);margin-bottom:6px}.detail-value{font-size:14px;line-height:1.6}.detail-value a{color:var(--accent)}.detail-hero{display:flex;align-items:center;justify-content:space-between;padding:21px 22px;background:#fcfdfd;border-bottom:1px solid var(--line);gap:15px}.section-space{margin-top:25px}.note-box{padding:16px;background:#f5f8f9;font-size:14px;line-height:1.7;border-radius:6px;white-space:pre-wrap}.part-row{padding:17px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.part-row:last-child{border-bottom:0}.part-row p{margin:3px 0;font-size:12px;color:var(--muted)}.part-row select{width:120px;font-size:12px}.settings-nav{display:flex;gap:8px;margin-bottom:23px;flex-wrap:wrap}.settings-nav button{background:white;border:1px solid var(--line);border-radius:6px;color:var(--muted);padding:9px 16px;font-size:13px}.settings-nav button.active{background:var(--soft);color:var(--accent);border-color:#acd4c9}.integration-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.integration{padding:23px;background:white;border:1px solid var(--line);border-radius:9px}.integration-logo{height:43px;width:43px;background:#f0f4f5;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;font-weight:700;margin-bottom:18px}.integration p{font-size:13px;color:var(--muted);min-height:44px}.integration .pill{margin-top:8px}.notice{background:#eaf4f1;color:#447267;border:1px solid #d3e7df;padding:14px 17px;border-radius:6px;font-size:13px;line-height:1.6;margin-bottom:20px}.notice.amber{background:#fff7e9;border-color:#f1e4c9;color:#917442}.error{padding:12px;background:#fff0f0;color:#a74343;border-radius:6px;font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid .full{grid-column:1/-1}.form-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:9px}.form-error{color:#b34e4e;font-size:13px;margin:12px 0;white-space:pre-wrap}.small{font-size:12px}.wide{width:100%}dialog{border:0;border-radius:12px;padding:0;width:min(620px,calc(100vw - 30px));max-height:90vh;box-shadow:0 30px 100px #0a25304d;color:var(--ink)}dialog::backdrop{background:#102d3866;backdrop-filter:blur(3px)}.modal-head{padding:23px 26px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.modal-content{padding:24px 26px}.modal-head h2{font-size:20px}.close{background:transparent;color:#7a8d96;font-size:24px;line-height:1;padding:0 5px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:#183c44;color:white;padding:14px 24px;border-radius:8px;box-shadow:var(--shadow);font-size:14px;z-index:100;transition:transform .2s;max-width:90vw}#toast.show{transform:translateX(-50%) translateY(0)}.public-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:#eaf1f3}.public-card{width:100%;max-width:510px;background:white;border:1px solid #dce5e8;border-radius:14px;padding:40px;box-shadow:var(--shadow)}.public-card>.brand-mark{margin-bottom:27px}.public-card h1{font-size:34px;margin-bottom:20px}.public-card form{margin-top:24px}.public-card p{font-size:14px}.public-footer{font-size:12px;color:var(--muted);margin-top:24px}.demo-note{font-size:12px!important;color:var(--muted);margin-top:23px!important;padding-top:20px;border-top:1px solid var(--line)}.estimate-summary{background:#f5f8f9;padding:20px;border-radius:7px;margin:25px 0}.estimate-summary>div{display:flex;justify-content:space-between;font-size:14px;margin:14px 0}.estimate-summary .total{border-top:1px solid var(--line);padding-top:18px;font-size:19px}hr{border:0;border-top:1px solid var(--line);margin:26px 0}.loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.schedule-day{padding:12px 20px;background:#f0f5f5;font-size:12px;font-weight:600;color:#52716e}.mobile-toggle{display:none}.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.reminder-step{padding:20px;display:flex;gap:17px;border-bottom:1px solid var(--line)}.step-number{width:40px;height:40px;background:var(--soft);border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--accent);flex-shrink:0}.reminder-step p{font-size:13px;color:var(--muted);margin:3px 0}.break{white-space:normal;max-width:300px}.month-input{width:165px}.low{color:#b27636}.notify-item{display:block;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px}.notify-item time{display:block;font-size:12px;color:var(--muted);margin-top:5px}.badge-heading{display:flex;gap:10px;align-items:center}.logo-light{color:#77cebd}.feedback-stars{color:#b18c45}.link-input{font-size:12px!important}.inline-label{margin:0}.schedule-controls{display:flex;gap:8px;align-items:center}.subtle{color:#758a94;font-size:12px}.money{font-variant-numeric:tabular-nums}.select-small{width:auto;padding:7px 10px;font-size:12px}.detail-buttons{padding:0 22px 22px;display:flex;gap:8px;flex-wrap:wrap}
@media(min-width:1600px){.page{padding:40px 45px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 360px}.job-row{padding:21px 24px}}
@media(max-width:1200px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{width:210px;padding:26px 12px}.page{padding:25px}.topbar{padding:0 25px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 280px;gap:17px}.job-row{grid-template-columns:53px minmax(0,1fr) 92px;gap:12px;padding:17px}.job-row>.person,.job-row>.chevron{display:none}.stats{gap:12px}.stat{padding:16px}.stat-value{font-size:27px}.split{grid-template-columns:1.2fr 1fr}}
@media(max-width:980px){.dashboard-grid{grid-template-columns:1fr}.attention-list{display:grid;grid-template-columns:repeat(3,1fr)}.attention-card{border-right:1px solid var(--line);border-bottom:0}.split{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.brand-title{font-size:14px}.integration-grid{grid-template-columns:1fr}.topbar-right{gap:10px}.pipeline{gap:10px}}
@media(max-width:700px){.app-shell{display:block}.sidebar{z-index:20;transform:translateX(-100%);transition:transform .2s;width:238px}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #12303a66}.main{width:100%}.mobile-toggle{display:inline-flex}.topbar{height:65px;padding:0 16px}.breadcrumbs{font-size:12px;gap:8px}.breadcrumbs>span{display:none}.topbar-right select{max-width:145px;font-size:12px}.topbar-right>.avatar{display:none}.page{padding:22px 16px}.page-head{align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:22px}h1{font-size:26px}.page-head p{font-size:13px;max-width:310px}.page-head .actions{width:100%}.stats{gap:10px;margin-bottom:20px}.stat{padding:14px}.stat-value{font-size:26px}.stat-label{font-size:12px}.stat-label .icon{display:none}.stat-foot{font-size:11px}.panel-head{padding:17px}.job-row{grid-template-columns:51px minmax(0,1fr) 89px;padding:16px 13px;gap:8px}.job-name{font-size:13px}.job-row .subtext{font-size:11px}.pill{font-size:10px;white-space:normal}.attention-list{display:block}.attention-card{border-bottom:1px solid var(--line)}.pipeline{padding:19px 16px;gap:10px}.pipeline-stage span{font-size:10px}.pipeline-stage strong{font-size:23px}.toolbar{flex-wrap:wrap}.search{width:100%}.toolbar select{flex:1;max-width:none}.board{grid-template-columns:repeat(4,260px)}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.modal-content{padding:20px}.modal-head{padding:20px}.public-card{padding:29px 25px}.public-card h1{font-size:29px}.report-stats{grid-template-columns:1fr}.detail-grid{gap:18px}.detail-hero{align-items:flex-start;flex-direction:column}.detail-buttons>*{flex:1}.demo-banner{font-size:11px}.topbar-right{gap:8px}.schedule-footer{padding:14px;font-size:11px}.schedule-controls{flex-wrap:wrap}.schedule-controls input{width:160px}.settings-nav{gap:6px}.settings-nav button{font-size:12px;padding:9px 12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.public-page{max-width:600px;margin:8vh auto;padding:28px;background:white;border:1px solid #dce6e4;border-radius:18px}.public-page label{display:block;margin:18px 0}.public-page input,.public-page textarea,.public-page select{display:block;width:100%;margin-top:8px}.photo-grid{display:flex;flex-wrap:wrap;gap:10px;padding:18px}.photo-grid img{width:110px;height:100px;object-fit:cover;border-radius:9px}.photo-upload{cursor:pointer}.photo-upload input{display:none}.doc-line{display:grid;grid-template-columns:1fr 1fr 75px 95px;gap:10px;border-bottom:1px solid #e2e8e6;padding:14px 0}.doc-line [data-remove]{grid-column:4}.address-entry{position:relative}[data-address-results]:empty,#customer-matches:empty{display:none}[data-address-results],#customer-matches{border:1px solid #d5e2df;border-radius:8px;max-height:230px;overflow:auto;background:white}[data-address-results] button,#customer-matches button{display:block;text-align:left;width:100%;border:0;border-bottom:1px solid #eee;background:white;padding:12px;cursor:pointer}[data-address-results] button:focus,#customer-matches button:focus{background:#e8f3ef}#customer-matches small{display:block;color:#687d78}#inline-customer{background:#f2f7f5;padding:16px;margin-top:12px;border-radius:10px}.schedule-map{height:520px;border:1px solid #dbe4e1;border-radius:14px;background:#edf3f0;padding:0}.map-number{display:inline-flex;align-items:center;justify-content:center;border:3px solid white;background:#175b4e;color:white;width:36px;height:36px;border-radius:50%;font-weight:700;box-shadow:0 2px 7px #0003;flex-shrink:0}.map-popup{max-width:240px;color:#203e36}.map-popup img{display:block;width:210px;height:100px;object-fit:cover;margin-bottom:8px}.message-thread{max-height:55vh;overflow:auto}.message{padding:13px;margin:10px 0;border-radius:12px;background:#f0f3f2;white-space:pre-wrap}.message.outbound{margin-left:30px;background:#e3f1ea}.message.inbound{margin-right:30px}.message small{color:#5e756d}.integration-grid .integration p{margin:9px 0}.settings-nav{flex-wrap:wrap}.photo-upload:focus-within{outline:2px solid #175b4e}@media(max-width:600px){.doc-line{grid-template-columns:1fr 1fr}.doc-line [data-remove]{grid-column:2}.schedule-map{height:420px}.public-page{margin:20px}.photo-grid img{width:90px;height:90px}}

/* Keep the full menu reachable above iOS Safari's changing browser controls. */
@media(max-width:700px){
  .sidebar{height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
  .sidebar .brand,.sidebar .nav-link,.sidebar .workspace-label,.sidebar-bottom{flex-shrink:0}
}
/* Calendar and mobile controls */
.board{grid-template-columns:repeat(6,minmax(240px,1fr));overflow-x:auto}.pipeline{overflow-x:auto}.pipeline-stage{min-width:125px}.settings-nav{flex-wrap:wrap}.calendar-toolbar{flex-wrap:wrap;gap:12px}.calendar-toolbar label{min-width:150px}.calendar-title{margin:12px 0}.calendar-scroll{overflow:auto;max-height:72vh;border:1px solid #dce5e7;border-radius:12px;background:white}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));min-width:910px}.calendar-heading{padding:12px 4px;text-align:center;font-weight:600;background:#f7fafb;border-bottom:1px solid #dce5e7}.month-day{min-height:135px;border-right:1px solid #e4ebed;border-bottom:1px solid #e4ebed;padding:5px;min-width:0}.outside-month{background:#f4f6f6;color:#8a979e}.day-number{border:0;background:none;border-radius:50%;padding:4px 8px}.calendar-today{background:#e8f5f2}.calendar-today .day-number{background:#176f64;color:white}.calendar-event{display:block;text-align:left;width:100%;padding:5px;margin:3px 0;border:0;border-left:3px solid;border-radius:5px;color:#203841;font-size:11px;overflow:hidden;cursor:pointer}.calendar-event strong,.calendar-event span,.calendar-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-calendar{min-width:980px}.week-header,.week-body{display:grid;grid-template-columns:55px repeat(7,minmax(130px,1fr))}.week-header{position:sticky;top:0;z-index:3;background:white}.week-body{height:1440px}.week-day{position:relative;border-right:1px solid #dce5e7;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 59px,#e4ebed 59px,#e4ebed 60px)}.week-day .calendar-event{position:absolute;margin:0;box-sizing:border-box}.hour-labels{position:relative}.hour-labels span{position:absolute;font-size:10px;padding:2px}.cleanup-list{max-height:45vh;overflow:auto}.cleanup-list label{display:block;border-bottom:1px solid #e4ebed;padding:10px}.cleanup-list small{display:block;margin:5px 0}#message-matches button{display:block;text-align:left;width:100%;padding:10px;background:white;border:1px solid #e4ebed}.public-page{max-width:850px!important}.public-page header{border-bottom:2px solid #176f64;margin-bottom:24px}.public-page footer{border-top:1px solid #dce5e7;margin-top:24px;padding-top:16px}.public-page table td,.public-page table th{padding:8px 4px}@media(max-width:700px){.page-head .actions{flex-wrap:wrap}.calendar-toolbar .actions{flex-wrap:wrap}.calendar-toolbar input[type=date]{max-width:155px}.settings-nav button{padding:9px}.board{max-width:100%}.modal-content .form-grid{grid-template-columns:1fr}.doc-line{grid-template-columns:1fr 1fr}.topbar-right{gap:6px}.topbar-right select{max-width:140px}}@media print{.public-page{max-width:none!important;margin:0!important;box-shadow:none!important}}

/* Keep navigation and form actions inside the actual mobile visual viewport. */
.job-layout p,.job-layout h3,.page-head h1,.document-heading p{overflow-wrap:anywhere}.form-grid label,.doc-line label,.request-part label{min-width:0}
dialog[open]{display:flex;flex-direction:column;padding:0;max-height:calc(var(--visible-height,100dvh) - 24px);overflow:hidden;width:min(760px,calc(100vw - 24px));box-sizing:border-box}
#modal-body{display:flex;flex-direction:column;min-height:0;max-height:inherit;width:100%}
.modal-head{flex:0 0 auto;position:relative;background:white;padding:16px 20px;gap:12px;border-bottom:1px solid #dce5e7}
.modal-done{min-height:44px;flex-shrink:0}.modal-content{overflow-y:auto;min-height:0;overscroll-behavior:contain;padding:18px}
.modal-content:has(#edit-form){display:flex;overflow:hidden;flex:1 1 auto;min-height:0}
#edit-form{display:flex;flex-direction:column;width:100%;min-height:0;max-height:100%}
#edit-form>.form-grid{overflow-y:auto;min-height:0;flex:1 1 auto;padding:2px 3px 14px;overscroll-behavior:contain}
#edit-form>.form-footer{flex:0 0 auto;margin-top:10px;padding:12px 0 max(6px,env(safe-area-inset-bottom));background:white;gap:10px;flex-wrap:wrap}
#edit-form>.form-error{flex:0 0 auto;max-height:5em;overflow:auto}
.profile-back{position:sticky;top:72px;z-index:10;background:#f5f8f9;display:flex;justify-content:space-between;align-items:center;padding:8px 0;margin-bottom:14px;border-bottom:1px solid #dce5e7}
.job-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px}.job-layout>div{min-width:0}.job-layout .panel-head{flex-wrap:wrap;gap:12px}.job-layout .actions{flex-wrap:wrap;gap:10px}.estimate-controls{gap:14px;padding-top:4px;padding-bottom:18px}
.danger-button{border:1px solid #e8b7b7;background:#fff6f6;color:#9b2929;border-radius:8px;padding:10px 14px;min-height:42px;cursor:pointer}
.view-all{display:block;padding:0 16px 16px}.view-all summary{cursor:pointer;color:#156f64;padding:12px 0;font-weight:600}.collapse-label{display:none}.view-all[open]>summary .expand-label{display:none}.view-all[open]>summary .collapse-label{display:inline}
.compact-photos{padding:12px;display:flex;gap:10px;flex-wrap:wrap}.photo-tile{display:inline-block;width:calc(20% - 8px);min-width:60px}.photo-tile img{width:100%;height:90px;object-fit:cover;border-radius:8px}.compact-photos>.view-all{width:100%}.compact-photos .view-all>div{display:flex;gap:10px;flex-wrap:wrap}
.document-card{padding:18px;border-top:1px solid #e0e8e9}.document-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.document-card>.panel{margin:16px 0 0;border:1px solid #e0e8e9;box-shadow:none}.document-card .actions{gap:10px}.document-card .pill{margin-right:4px}
.request-part{padding:16px 0;border-bottom:1px solid #dce5e7;display:grid;grid-template-columns:minmax(0,2fr) 90px minmax(0,1fr) auto;gap:12px;align-items:start}.inventory-suggestions{max-height:180px;overflow:auto}.inventory-suggestions:empty{display:none}.inventory-suggestions button{display:block;text-align:left;width:100%;background:#f5faf8;border:1px solid #dce5e7;padding:10px;min-height:44px;color:#1e4540}.request-part input{width:100%;box-sizing:border-box}
dialog.document-modal{width:min(1050px,calc(100vw - 24px))}.document-heading{display:grid;grid-template-columns:1fr 1fr;gap:28px;border-bottom:2px solid #186f64;padding-bottom:20px;margin-bottom:18px}.document-heading h2{font-size:23px;margin:8px 0}.document-heading p{margin:4px 0;white-space:pre-line;font-size:13px}.bill-to{background:#f4f8f7;padding:16px;border-radius:10px}.document-sheet{min-width:0}.document-sheet .doc-line{display:grid;grid-template-columns:minmax(0,1fr) 85px 110px auto;gap:12px;align-items:start;margin:16px 0;padding:12px 0;border-bottom:1px solid #e3eaea}.document-sheet input{width:100%;box-sizing:border-box}.document-summary{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:24px 0}.document-summary dl{display:grid;grid-template-columns:1fr auto;gap:12px;margin:0;background:#f4f8f7;border-radius:10px;padding:18px}.document-summary dd{text-align:right;margin:0}.document-summary .total{font-size:20px;font-weight:700;border-top:1px solid #ccdcd7;padding-top:12px}.document-terms{border-top:1px solid #dce5e7;padding-top:16px}.document-terms p{white-space:pre-line;font-size:13px}.calendar-sync-note{font-size:12px;padding:10px;background:#f4f8f7;border-radius:8px}
@media(max-width:700px){.job-layout{grid-template-columns:1fr;gap:0}.profile-back{top:64px}.request-part{grid-template-columns:1fr 85px}.request-part label:first-child{grid-column:1/-1}.request-part button[data-remove-part]{align-self:end}.document-heading{grid-template-columns:1fr;gap:14px}.document-summary{grid-template-columns:1fr;gap:14px}.document-sheet .doc-line{grid-template-columns:1fr 1fr;gap:10px}.doc-line .line-description{grid-column:1/-1}.photo-tile{width:calc(33.333% - 8px)}.modal-head{padding:12px}.modal-head h2{font-size:19px}.modal-content{padding:12px}.profile-back a{min-height:42px}#edit-form .form-footer button{flex:1;min-height:46px}.document-card{padding:14px}.modal-head .modal-done{padding:10px 14px}.page-head{gap:14px}}

/* Screenshot-inspired composer; all fixed actions remain within visual viewport. */
.document-modal [hidden]{display:none!important}
dialog.document-modal{width:min(780px,calc(100vw - 24px));color:#17191a}
.document-modal .modal-head{display:flex;align-items:center;gap:10px;padding:18px}
.document-modal .modal-head h2{flex:1;font-size:22px;order:1;margin:0}
.document-modal .modal-done{order:0;border-radius:30px;background:#f0f0f0;color:#202323}
.document-modal .document-draft{order:2;border:0;border-radius:30px;background:#f0f0f0;color:#17191a;padding:14px 18px;font-weight:700;min-height:46px;white-space:nowrap}
.document-modal .modal-content{padding:0 22px}
.document-modal .form-grid{display:block;padding:0!important}
.document-sheet>p.subtle{margin:12px 0 24px}
.document-sheet>label{display:block;margin-bottom:24px}
.composer-section{padding:24px 0;border-bottom:8px solid #f1f1f1}
.composer-section h2,.composer-line-title,.document-picker h2{font-size:23px;margin:0 0 22px;font-weight:750}
.composer-customer{background:#f5f5f5;border-radius:18px;padding:20px}
.composer-customer strong{font-size:19px}.composer-customer p{margin:8px 0 0;overflow-wrap:anywhere}
.composer-line-title{padding-top:20px}
.document-sheet #add-doc-line{width:100%;border:0;border-radius:40px;background:#f0f0f0;color:#141414;font-size:18px;font-weight:700;min-height:56px}
.document-sheet #add-job-parts{border:0;background:transparent;color:#444;padding:12px}
.document-sheet>.actions{display:flex;flex-direction:column;gap:6px}
.document-sheet .document-summary{border-top:8px solid #f1f1f1;margin-top:24px}
.document-sheet .document-summary dl{background:#f5f5f5;color:#17191a}
.document-modal input,.document-modal textarea{font-size:16px}
.document-modal .form-footer{border-top:1px solid #eee!important;margin-top:0!important;padding:14px 0 max(12px,env(safe-area-inset-bottom))!important}
.document-modal #document-continue,.document-modal .form-footer [type=submit]{border:0;border-radius:40px;min-height:54px;background:#111;color:#fff;font-size:18px;font-weight:700;flex:1}
.document-picker{padding:24px 0}.picker-search{display:block;margin-bottom:18px}
.picker-search input{width:100%;margin-top:8px;padding:16px}
.catalog-item{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 0;background:white;border:0;border-bottom:1px solid #ddd;color:#353d42;min-height:82px}
.catalog-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;background:#eceeed;border-radius:10px;font-size:20px}
.catalog-item>span:nth-child(2){flex:1;min-width:0}.catalog-item strong{display:block;overflow-wrap:anywhere}
.catalog-item small,.review-lines small{display:block;font-size:12px;color:#677176;margin-top:6px}.catalog-item>b{white-space:nowrap}
.document-review{padding:24px 0;overflow-wrap:anywhere}.review-company h2{font-size:26px}
.review-lines>div{display:flex;justify-content:space-between;gap:18px;padding:18px 0;border-bottom:1px solid #eee}
.review-totals{display:grid;grid-template-columns:1fr auto;gap:14px;padding:22px 0}.review-totals dd{margin:0;text-align:right}.review-totals dt:last-of-type,.review-totals dd:last-of-type{font-size:23px;font-weight:700}
@media(max-width:700px){
 dialog.document-modal{width:100vw;max-width:100vw;max-height:var(--visible-height,100dvh);height:var(--visible-height,100dvh);margin:0;border:0;border-radius:0}
 .document-modal #modal-body{height:100%}.document-modal .modal-head{padding:12px;gap:8px}
 .document-modal .modal-head h2{font-size:17px}.document-modal .document-draft{font-size:12px;padding:12px}
 .document-modal .modal-done{font-size:12px;padding:10px}.document-modal .modal-content{padding:0 16px}
 .document-modal .form-footer button{flex:1}.catalog-item{gap:10px}.catalog-item strong{font-size:15px}
}
