:root{--forest:#163f33;--green:#205a46;--lime:#d9ef9c;--ink:#19392f;--muted:#60766d;--line:#dbe5df;--bg:#f3f6f2;--paper:#fff;--warn:#78540a;--soft:#edf4ed;--radius:18px;--shadow:0 5px 20px #163f3309;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b0cd6e;outline-offset:3px}button{border:0}h1,h2,h3,p{margin-top:0}h1{font-size:29px;letter-spacing:-.9px;margin-bottom:8px;line-height:1.12}h2{font-size:20px;letter-spacing:-.4px;line-height:1.25}h3{font-size:16px;line-height:1.35}p{line-height:1.55}small,.small{font-size:13px;line-height:1.5}svg.icon{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;flex-shrink:0}button .icon{pointer-events:none}a{color:var(--green)}[hidden]{display:none!important}.shell{max-width:1020px;margin:auto;min-height:100dvh}.appbar{position:sticky;top:0;z-index:20;padding:calc(12px + env(safe-area-inset-top)) 18px 12px;background:var(--forest);color:white;display:flex;align-items:center;gap:10px}.brandmark{display:grid;place-items:center;background:var(--lime);color:var(--forest);font-size:23px;font-weight:800;width:40px;height:40px;border-radius:13px;flex-shrink:0}.brand{flex:1;line-height:1.15}.brand strong{font-size:18px;letter-spacing:-.25px}.brand span{display:block;color:#bdd1c7;font-size:11px;margin-top:4px;letter-spacing:1.3px;text-transform:uppercase}.avatar{height:36px;min-width:36px;border:1px solid #ffffff38;border-radius:50%;display:grid;place-items:center;background:#ffffff12;font-size:12px;font-weight:700;color:white}.iconbtn{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:transparent;color:inherit}.demo-strip{padding:8px 18px;background:#f6ebce;color:#6d520c;font-size:12px;display:flex;align-items:center;gap:6px;justify-content:space-between}.demo-strip b{font-weight:700}.textbtn{background:none;color:inherit;padding:8px 0;font-size:13px;font-weight:650;min-height:40px}.statusline{background:#fae3df;color:#862e25;padding:12px 18px;font-size:13px;line-height:1.45}.main{padding:24px 18px 110px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:1.6px;font-weight:750;color:var(--muted);margin-bottom:8px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.lead{color:var(--muted);font-size:14px;margin-bottom:20px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;line-height:1.3;padding:5px 8px;border-radius:7px;background:#edf3ed;color:#365b48;vertical-align:middle}.pill .icon{width:13px;height:13px}.pill.warn{background:#fff0d4;color:#7c5609}.pill.blue{background:#eaf0fb;color:#305878}.pill.gray{background:#eff1f1;color:#5e6c65}.pill.done{background:#dff1e2;color:#2b623d}.segmented{display:flex;padding:4px;background:#e5ede5;border-radius:14px;gap:3px;margin:18px 0 14px}.segmented button{flex:1;min-height:42px;background:none;color:#556d5e;border-radius:10px;font-weight:650;font-size:14px}.segmented button.active{background:white;box-shadow:0 2px 5px #163f3310;color:var(--forest)}.period{display:flex;gap:7px;align-items:center;margin-bottom:12px}.period .iconbtn{background:white;border:1px solid var(--line)}.datefield{position:relative;flex:1;min-width:0}.datefield input{width:100%;border:1px solid var(--line);background:white;padding:12px;border-radius:12px;color:var(--ink);min-height:46px;font-size:16px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:12px;font-size:14px;font-weight:650;color:var(--ink);text-decoration:none}.btn.primary{background:var(--green);color:white;border-color:var(--green)}.btn.lime{background:var(--lime);border-color:var(--lime);color:var(--forest)}.btn.danger{color:#9a3728;background:#fff5f2}.btn.full{width:100%}.btn.smallbtn{font-size:12px;padding:8px 10px;min-height:42px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label,.label{font-size:12px;font-weight:650;color:var(--muted)}.field input,.field select,.field textarea,.filters select{width:100%;min-height:46px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:white;color:var(--ink);font-size:16px}.field textarea{resize:vertical;min-height:90px}.filters select{font-size:14px}.sectionhead{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;margin:25px 0 13px;font-weight:700}.dayhead{display:flex;align-items:center;gap:10px;margin:21px 0 10px}.daynum{width:43px;height:43px;border-radius:12px;background:#e4ece2;display:grid;place-items:center;font-weight:750;font-size:19px}.today .daynum{background:var(--forest);color:white}.dayhead strong{font-size:15px;display:block}.dayhead small{font-size:11px;color:var(--muted)}.dayhead .line{height:1px;background:var(--line);flex:1}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:17px;margin-bottom:11px;box-shadow:var(--shadow);overflow-wrap:anywhere}.jobcard{display:block;width:100%;text-align:left;color:var(--ink);position:relative;border-left:4px solid #81a779}.jobcard .category{font-size:11px;color:var(--muted);margin:8px 0 5px}.jobcard h3{margin:0 0 5px;font-size:16px}.jobcard .jobtitle{font-size:14px;margin:0 0 11px}.jobcard .address{display:flex;gap:6px;font-size:12px;color:var(--muted);line-height:1.45}.jobcard .address .icon{width:15px;height:15px}.cardfooter{border-top:1px solid #edf0ec;margin-top:12px;padding-top:10px;font-size:12px;display:flex;gap:8px;align-items:center;color:#4f6a5c}.cardfooter .icon{width:17px;height:17px}.hours{font-size:15px;font-weight:750;color:var(--forest);white-space:nowrap}.crewtag{font-size:11px;font-weight:750;letter-spacing:.3px;color:#47644f}.empty{padding:17px;border:1px dashed #cfdcd0;border-radius:14px;color:var(--muted);font-size:13px;line-height:1.55;margin-bottom:12px}.notice{padding:13px 15px;background:#f8f0dd;border:1px solid #ecddba;border-radius:13px;color:#705525;font-size:13px;line-height:1.55;margin:12px 0}.notice.green{background:#e9f2e8;border-color:#d5e6d3;color:#365b3d}.notice.blue{background:#edf3f9;border-color:#d7e3ef;color:#3c5d75}.weekhead{border-bottom:2px solid #bbcfb4;padding:13px 0 10px;font-size:15px;font-weight:750;margin-top:12px}.bottomnav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:1020px;padding:9px 10px calc(9px + env(safe-area-inset-bottom));display:flex;background:#ffffffed;backdrop-filter:blur(15px);border-top:1px solid var(--line);z-index:25}.bottomnav button{flex:1;min-height:53px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-size:10px;font-weight:650;color:#6d7f74;background:none;border-radius:13px;position:relative}.bottomnav button.active{color:var(--forest);background:#e7f0de}.bottomnav .badge{background:#b84935;border-radius:10px;color:#fff;padding:1px 5px;font-size:10px;position:absolute;top:4px;left:calc(50% + 9px)}.search{position:relative;margin:18px 0 12px}.search input{width:100%;padding:14px 14px 14px 43px;border:1px solid var(--line);border-radius:13px;background:white;min-height:49px;font-size:16px}.search .icon{position:absolute;top:14px;left:13px;color:var(--muted);width:19px}.chips{display:flex;gap:7px;overflow-x:auto;padding:0 0 9px;scrollbar-width:none}.chips button{white-space:nowrap;background:white;border:1px solid var(--line);padding:10px 13px;min-height:41px;border-radius:25px;font-size:12px;color:var(--muted)}.chips button.active{background:var(--forest);color:white;border-color:var(--forest)}.back{display:inline-flex;align-items:center;gap:6px;background:none;color:var(--muted);padding:0;margin-bottom:18px;min-height:40px;font-size:13px}.detailhero{background:var(--forest);color:white;padding:24px 21px;border-radius:21px;margin-bottom:16px;overflow-wrap:anywhere}.detailhero .eyebrow{color:#b9d3c0}.detailhero h1{font-size:25px;letter-spacing:-.5px;margin:12px 0 7px}.detailhero p{font-size:14px;color:#d6e5dc;margin:0 0 14px}.detailhero .pill{background:#ffffff1f;color:#e2efd9}.metrics{display:grid;grid-template-columns:repeat(3,1fr);background:#edf3e9;border-radius:15px;overflow:hidden;margin:14px 0}.metric{text-align:center;padding:16px 7px;border-right:1px solid #d6e2d2}.metric:last-child{border:0}.metric b{display:block;font-size:21px;letter-spacing:-.5px}.metric span{font-size:10px;line-height:1.3;display:block;margin-top:4px;color:var(--muted)}.facts{margin:0;display:grid;gap:14px}.facts div{border-bottom:1px solid #eef1ed;padding-bottom:12px}.facts div:last-child{padding-bottom:0;border:0}.facts dt{font-size:11px;color:var(--muted);margin-bottom:5px}.facts dd{font-size:14px;line-height:1.5;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.message{padding:14px 15px;background:white;border:1px solid var(--line);border-radius:16px 16px 16px 4px;margin:12px 30px 12px 0;max-width:100%;overflow-wrap:anywhere}.message.own{background:#e5eedc;border-color:#d3e2ca;border-radius:16px 16px 4px 16px;margin:12px 0 12px 30px}.message.system{background:transparent;border-style:dashed;margin:15px 0;border-radius:12px;font-size:12px}.message .meta{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:9px;margin-bottom:8px}.message p{margin:0;white-space:pre-wrap;font-size:14px;line-height:1.5}.quote{border-left:3px solid #a1b39a;background:#ffffff80;padding:8px;font-size:11px;margin:4px 0 10px;white-space:pre-wrap;color:var(--muted)}.message .textbtn{font-size:11px;min-height:34px}.attachment{display:flex;align-items:center;gap:7px;background:#ffffff9c;border:1px solid #d8e2d2;border-radius:9px;padding:10px;max-width:100%;text-align:left;word-break:break-word;color:var(--ink);font-size:12px;margin-top:9px;min-height:44px}.composer{position:sticky;bottom:82px;background:#f3f6f2ed;backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:17px;padding:12px;z-index:10;margin:20px 0}.composer textarea{width:100%;resize:vertical;min-height:75px;max-height:230px;border:0;background:white;border-radius:10px;padding:12px;font-size:16px;color:var(--ink);margin-bottom:8px}.composer textarea:focus{outline:2px solid #a9c692}.formstack{display:grid;gap:16px}.login{max-width:460px;margin:0 auto;padding:55px 24px 35px}.login .brandmark{width:62px;height:62px;font-size:34px;border-radius:20px;margin-bottom:26px}.login h1{font-size:38px;letter-spacing:-1.6px}.login .intro{font-size:15px;color:var(--muted);margin-bottom:25px}.login .card{padding:22px}.error{background:#fae5e1;color:#8b3027;padding:13px;border-radius:11px;font-size:13px;line-height:1.5;margin:12px 0}.linkrow{background:white;display:flex;align-items:center;gap:12px;width:100%;text-align:left;color:var(--ink);padding:16px;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;min-height:65px}.linkrow strong{font-size:14px}.linkrow small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.avatar.large{background:#e7eedf;border:0;width:42px;height:42px;color:var(--forest);border-radius:13px}.dialogbackdrop{position:fixed;inset:0;background:#10291c65;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding-top:env(safe-area-inset-top)}.dialog{background:var(--bg);border-radius:25px 25px 0 0;width:100%;max-width:600px;max-height:92dvh;overflow-y:auto;padding:18px 20px calc(22px + env(safe-area-inset-bottom));overscroll-behavior:contain}.dialog h2{margin:8px 0 20px}.dialog header{display:flex;align-items:center;justify-content:space-between}.dialog img{max-width:100%;border-radius:10px}.dialog audio{width:100%}.dialogfooter{display:flex;gap:9px;margin-top:20px}.dialogfooter .btn{flex:1}#toast{position:fixed;bottom:calc(95px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#193f32;color:white;font-size:13px;line-height:1.45;padding:13px 18px;border-radius:13px;max-width:calc(100% - 30px);width:max-content;z-index:90;pointer-events:none;box-shadow:0 5px 20px #0002;display:none}.loader{padding:45px 15px;text-align:center;color:var(--muted);font-size:14px}.startup{display:grid;place-items:center;margin-top:22vh;gap:15px}.tiny{font-size:11px;line-height:1.5}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.listcount{font-size:12px;color:var(--muted);margin:10px 0 15px}.plain{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.bulletline{height:8px;width:8px;border-radius:50%;background:#9ab66c;display:inline-block;margin-right:5px}.busy{pointer-events:none;opacity:.6}input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}.rolecard{padding:10px 0;border-bottom:1px solid var(--line)}.rolecard select{max-width:145px;font-size:14px;padding:11px;border:1px solid var(--line);border-radius:10px;background:white}.sync{font-size:11px;color:var(--muted);margin-top:16px}.rule{height:1px;background:var(--line);margin:18px 0}.version{color:#7d8c82;font-size:11px;text-align:center;margin:30px 0 5px}.helpsteps{padding-left:20px;font-size:14px;line-height:1.65}.helpsteps li{padding-bottom:10px}.readline{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.readline .icon{width:13px;height:13px}@media(min-width:650px){.main{padding:30px 30px 115px}.appbar{padding-left:30px;padding-right:30px}.calendar-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;align-items:start}.weekhead,.week-extra{grid-column:1/-1}.dialogbackdrop{align-items:center;padding:25px}.dialog{border-radius:23px;max-height:90dvh}.filters{max-width:600px}.joblist{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chatbody{max-width:680px;margin:auto}.period{max-width:570px}.segmented{max-width:520px}}@media(max-width:355px){.main{padding-left:12px;padding-right:12px}.appbar{padding-left:12px;padding-right:12px}.btn{padding-left:11px;padding-right:11px}.jobcard{padding:13px}.metric b{font-size:18px}.filters{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){.card,.linkrow{animation:appear .15s ease-out}@keyframes appear{from{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:none}}}

.message{scroll-margin-top:145px;scroll-margin-bottom:270px}.composer{position:relative;bottom:auto}.chatbody{padding-bottom:16px}

.filters select{font-size:16px}.demo-strip{min-height:36px;padding-top:3px;padding-bottom:3px}.segmented{margin-top:13px}.message .meta strong{overflow-wrap:anywhere}

/* 0.2.0: a single semantic table, with sticky row/column headers. */
.released-heading140{align-items:flex-start;gap:10px}.released-heading140 h1{font-size:27px;margin:5px 0 0}.released-heading140 .pill{margin-top:5px;white-space:nowrap}
.released-access140{border:1px solid #cbdccf;background:#edf4e9;border-radius:13px;padding:13px 14px;margin:15px 0}.released-access140 summary{cursor:pointer;font-size:13px;font-weight:700;min-height:25px;line-height:1.8}
.released-ranges140{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0 0}.released-ranges140 li{min-width:0;max-width:100%}.released-range140{display:flex;align-items:center;gap:7px;border:1px solid #cbdccf;border-radius:9px;background:#fff;color:#274d3c;font:inherit;font-size:12px;text-align:left;min-height:44px;padding:10px 12px;max-width:100%;line-height:1.5}.released-range140 .icon{width:17px;height:17px;flex-shrink:0}.released-range140 span{overflow-wrap:anywhere}
.released-period140{display:grid;grid-template-columns:40px minmax(0,1fr) 40px auto;gap:7px;align-items:center}.released-period140 .datefield{min-width:0}.released-period140 input{width:100%;min-width:0;max-width:100%}.released-period140 .btn{padding-left:10px;padding-right:10px}
.released-calendar140{margin-top:17px}.released-job140{width:100%;text-align:left}.released-week140{border:1px solid #cbdccf;background:#eef5ea;border-radius:14px;padding:15px;margin:0 0 14px}.released-week140 h2{font-size:15px;margin:0}.released-week140 .linkrow:last-child{margin-bottom:0}.released-week-help140{padding-top:12px;border-top:1px solid var(--line);line-height:1.65}.released-empty140{margin-top:18px}
.released-period140 button:disabled{opacity:.38;cursor:default}.released-scope140{margin:9px 0 0}
.bottomnav{grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
.bottomnav button{min-width:0;padding-left:1px;padding-right:1px;font-size:10px;overflow-wrap:anywhere}
.bottomnav button span{font-size:10px;white-space:nowrap;letter-spacing:-.2px}
.view-toggle{margin:15px 0 10px;max-width:none}
.view-toggle button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;padding:12px 6px;min-height:44px}
.view-toggle .icon{width:17px;height:17px;flex-shrink:0}
.compact-explainer{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 14px}
.compact-week{margin:0 0 22px;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff}
.compact-week-head{display:flex;align-items:center;justify-content:space-between;padding:13px 12px;gap:8px;background:#eaf1eb;border-bottom:1px solid var(--line)}
.compact-week-head strong{display:block;font-size:14px;line-height:1.4}
.compact-week-head span{display:block;font-size:11px;line-height:1.5;color:var(--muted)}
.compact-week-head .table-hint{text-align:right;font-size:10px;max-width:115px}
.table-scroll{overflow:auto;max-height:65dvh;max-height:65vh;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;isolation:isolate}
.table-scroll:focus-visible{outline:3px solid #668e5e;outline-offset:-3px}
.compact-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:744px;font-size:12px;line-height:1.4}
.compact-table .crew-col{width:107px}.compact-table .day-col{width:auto}
.compact-table th,.compact-table td{padding:6px;vertical-align:top;border-right:1px solid #e1e8e2;border-bottom:1px solid #e1e8e2;overflow-wrap:anywhere}
.compact-table thead th{position:sticky;top:0;z-index:4;background:#edf3ee;text-align:center;height:58px;color:#315441;font-weight:500}
.compact-table thead th span,.compact-table thead th strong,.compact-table thead th small{display:block}
.compact-table thead th strong{font-size:12px;font-weight:750}
.compact-table thead th small{font-size:9px;line-height:1}
.compact-table th.crew-heading{position:sticky;left:0;z-index:3;background:#f3f6f2;text-align:left;padding:10px 8px;box-shadow:2px 0 0 #cddbcf}
.compact-table thead th.crew-heading{z-index:5;top:0;background:#e4ede4}
.crew-heading strong{display:block;font-size:12px;color:#183e2d}
.crew-heading small{display:block;font-size:9px;font-weight:400;color:#627465;margin-top:6px}
.compact-table td{height:88px;background:#fff;padding:4px}
.compact-table td.weekend{background:#f5f6f8}
.compact-table td.is-today{background:#f2f9eb;box-shadow:inset 0 0 0 1px #6b954d}
.compact-table thead th.is-today{background:#20503b;color:white}
.compact-entry{display:block;width:100%;min-height:46px;margin:0 0 5px;padding:7px 5px;border:1px solid #dce6df;border-left:4px solid var(--job-color,#508d6a);border-radius:5px;background:#fafcf9;text-align:left;cursor:pointer;color:#1d382b;white-space:normal;box-shadow:0 1px 1px #122b1710}
.compact-entry:focus-visible{outline:3px solid #315bca;outline-offset:1px}
.compact-entry strong{display:block;font-size:11px;line-height:1.45;font-weight:700;overflow-wrap:anywhere}
.compact-meta{display:block;font-size:10px;line-height:1.55;color:#49654f;margin-top:4px}
.reg-tag{font-size:9px;font-weight:700;color:#7a2642;white-space:normal}
.cell-total{display:block;font-size:10px;color:#56695c;padding:3px}
.empty-cell{display:block;font-size:10px;line-height:1.7;padding:8px 3px;color:#819085}
.compact-reservation{font-size:10px;line-height:1.4;margin-top:5px;padding:5px;border:1px dashed #8b9aaf;border-radius:4px;background:#eff3fa;color:#365473}
.compact-reservation.blocking{border-color:#b58522;background:#fff5d9;color:#77561a}
.compact-reservation b,.compact-reservation span{display:block}
.weekly-pending{padding:10px;background:#f5f8f3;font-size:11px;line-height:1.5}
.weekly-pending>.linkrow{margin:7px 0 0;padding:10px;box-shadow:none}
.weekly-pending .linkrow strong{font-size:12px}.weekly-pending .linkrow small{font-size:11px}
.day-table{min-width:0}.day-table .crew-col{width:95px}.day-table .day-col{width:auto}
.day-table .compact-entry{padding:10px}.day-table .compact-entry strong{font-size:14px}
.entry-work{display:block;font-size:12px;line-height:1.5;margin-top:4px}
.entry-team{display:block;font-size:11px;line-height:1.5;margin-top:5px;color:#5b6c61}
.day-table .compact-meta{font-size:11px}.day-table .reg-tag{font-size:10px}
.entry-preview h2{margin:8px 0;font-size:22px;line-height:1.25}.entry-preview>p{font-size:14px;line-height:1.5}
.entry-preview .facts{margin:18px 0}.entry-actions{display:grid;gap:10px;margin-top:20px}
.direct-contact .grow{min-width:0}.direct-contact small{overflow-wrap:anywhere}
#directMessages .message p{white-space:pre-wrap;overflow-wrap:anywhere}
@media(min-width:700px){.bottomnav button span{font-size:12px}.compact-table{min-width:744px}.compact-table .crew-col{width:112px}.compact-entry strong{font-size:12px}.reg-tag{font-size:10px}.compact-table td{height:94px}.table-scroll{max-height:65dvh}}
@media(orientation:landscape) and (max-height:500px){.appbar{min-height:48px;padding-top:6px;padding-bottom:6px}.main{padding-top:15px}.table-scroll{max-height:65vh}.compact-week-head{padding-top:8px;padding-bottom:8px}.bottomnav{padding-top:2px;padding-bottom:max(2px,env(safe-area-inset-bottom))}.bottomnav button{min-height:45px}}
@media(max-width:355px){.bottomnav button span{font-size:9px}.view-toggle button{font-size:11px}.view-toggle .icon{width:15px;height:15px}.day-table .crew-col{width:85px}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* Keep the calendar controls compact without shrinking touch targets. */
.planning-head h1{font-size:24px;margin:0}.planning-head{min-height:34px;margin-bottom:4px}
.planning-toolbar .segmented{margin:9px 0}.planning-toolbar .segmented button{min-height:40px}
.planning-toolbar .period{margin-bottom:9px}.planning-toolbar .filters{margin-bottom:9px}
.planning-toolbar .view-toggle{margin:9px 0}.planning-toolbar .compact-explainer{margin:6px 0 10px;font-size:11px}

/* 0.2.1: work-order filters and references in private conversations. */
.job-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:12px;margin:16px 0 10px}
.job-filters .field{min-width:0}.job-filters select,#pickerCrew{width:100%;min-width:0;max-width:100%;font-size:16px}
.job-kind-chips{margin-top:6px}.assignment-help{margin:8px 0 12px;line-height:1.5}
.job-badges:empty{display:none}.job-badges{margin-bottom:10px}.pill.flex{background:#fff0cf;color:#6a4a0b}.pill.saturday{background:#e9eefb;color:#354d81}
.job-assignment{display:flex;align-items:flex-start;gap:8px;margin:10px 0;color:var(--ink,#19392f);line-height:1.4}
.job-assignment span{min-width:0;overflow-wrap:anywhere}.job-assignment small{display:block;font-size:11px;color:#60776b}.job-assignment strong{display:block;font-size:13px;font-weight:650}
.shared-job-card{display:flex;flex-direction:column;gap:7px;width:100%;min-width:0;text-align:left;white-space:normal;overflow-wrap:anywhere;border:1px solid #a5c7b5;border-left:4px solid #235c48;border-radius:10px;padding:13px;margin:8px 0;background:#f5fbf7;color:#183b2d;font:inherit}
.shared-job-card .eyebrow{font-size:10px;display:flex;gap:5px;align-items:center;flex-wrap:wrap}.shared-job-card .eyebrow .icon{width:15px;height:15px}
.shared-job-card small{font-size:12px;color:#536c60;line-height:1.4}.shared-job-card strong{font-size:15px}.shared-job-card .shared-job-open{font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:space-between;margin-top:3px}.shared-job-card .row.wrap:empty{display:none}
.shared-job-card.unavailable{border-color:#c3c8c5;background:#f0f2f1;color:#59675f}
.job-draft{border:1px dashed #639780;border-radius:10px;background:#eff7f2;padding:12px;margin-bottom:14px;overflow-wrap:anywhere}.job-draft p{margin:5px 0}.job-draft .eyebrow{font-size:10px;margin-bottom:6px}
#jobPickerContent{min-width:0}#jobPickerContent .search{margin-top:14px}#jobPickerContent .picker-job{width:100%;margin:0 0 10px}#jobPickerContent .joblist{display:block}
#directForm>.row.between{flex-wrap:wrap;gap:8px}#directForm>.row.between .btn{min-height:44px}
@media(max-width:430px){.job-filters{gap:8px}.job-filters .field label{font-size:11px;min-height:16px}.job-filters select{padding-left:9px;font-size:16px}.shared-job-card{padding:11px}#jobPickerContent .picker-job{padding:12px}}

@media(max-width:350px){.job-filters{grid-template-columns:1fr}}
/* 0.2.2: voice recording stays touch-sized and within narrow chat columns. */
.voice-composer{margin:12px 0;padding:12px;border:1px solid #cbded5;border-radius:12px;background:#f2f8f5}
.voice-composer strong,.voice-message>strong,.voice-preview strong{display:flex;align-items:center;gap:7px;font-size:14px}
.voice-controls{margin-top:10px;gap:8px}.voice-controls .btn{min-height:44px}.voice-composer .tiny{margin:10px 0 0}
.voice-hint{font-size:12px;line-height:1.5;margin:9px 0 0;color:#775226}.voice-timer{font-variant-numeric:tabular-nums;font-weight:700;color:#a12838}
.voice-live{font-size:13px;font-weight:700;color:#a12838;width:100%}.voice-live:before{content:'●';margin-right:7px}
.voice-message,.voice-preview{padding:12px;border:1px solid #c3d9cd;border-radius:12px;background:#fff;margin:10px 0;min-width:0;max-width:100%;overflow:hidden}
.voice-message>small{display:block;margin:5px 0 10px;color:#63746c}.voice-message audio,.voice-preview audio{display:block;width:100%;max-width:100%;min-width:0;height:44px;margin:9px 0}
.voice-preview{background:#edf5f0}.voice-preview .tiny{overflow-wrap:anywhere;margin-bottom:0}.voice-preview .iconbtn{flex-shrink:0}
.voice-download{display:inline-block;margin-top:6px}.voice-message .btn{min-height:44px}
@media(max-width:360px){.voice-controls{align-items:stretch}.voice-controls>.btn{flex:1;font-size:13px}.voice-preview strong{font-size:13px}}

/* 0.2.3: order chat areas. A view filter, never an access-control boundary. */
.chat-area-filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 14px}
.chat-area-chip{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;min-height:44px;max-width:100%;padding:10px 12px;border:1px solid #c4d5cb;border-radius:12px;background:#fff;color:#274a3d;font:inherit;font-size:13px;font-weight:650;line-height:1.3;cursor:pointer}
.chat-area-chip .chat-area-label{overflow-wrap:anywhere}.chat-area-chip.active{background:#1d5843;color:#fff;border-color:#1d5843}
.chat-area-chip:focus-visible{outline:3px solid #947012;outline-offset:2px}
.chat-area-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:6px;background:#edf3ef;font-size:11px;font-variant-numeric:tabular-nums;color:#315a46}
.chat-area-chip.active .chat-area-count{background:#ffffff26;color:#fff}
.chat-area-unread{font-size:10px;border-radius:5px;padding:3px 5px;color:#734a07;background:#ffedb9;white-space:nowrap}
.chat-area-section{--chat-area-accent:#668475;margin:0 0 22px;min-width:0}
.chat-area-green{--chat-area-accent:#26704e}.chat-area-stone{--chat-area-accent:#426b8e}.chat-area-mowing{--chat-area-accent:#718236}
.chat-area-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 10px;padding:3px 0 3px 11px;border-left:4px solid var(--chat-area-accent);min-width:0}
.chat-area-heading h2{margin:0;font-size:17px;line-height:1.4;overflow-wrap:anywhere}.chat-area-heading>span{font-size:12px;color:#61776b;flex-shrink:0}
.chat-thread{align-items:center;min-width:0}.chat-thread .grow{min-width:0}.chat-thread strong,.chat-thread small{overflow-wrap:anywhere}
.chat-thread .avatar{color:var(--chat-area-accent);flex-shrink:0}.chat-thread>.pill{font-size:10px;white-space:nowrap;flex-shrink:0}
.chat-thread-context{font-size:11px!important;font-weight:600;color:#496b5a!important}
.chat-area-origin{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding:5px 9px;margin:2px 0 10px;border:1px solid #c4d5cb;border-left:4px solid var(--chat-area-accent,#668475);border-radius:6px;background:#f1f6f3;font-size:12px;font-weight:650;color:#254a3a}
@media(max-width:355px){.chat-area-filters{gap:6px}.chat-area-chip{padding:9px;font-size:12px}.chat-thread{gap:10px;padding:13px}.chat-thread .avatar.large{width:36px;height:36px}}

/* Server connection and the optional remembered mobile session. */
.remember-login130{display:flex;align-items:flex-start;gap:10px;line-height:1.45;font-size:15px;font-weight:600}.remember-login130 input{width:21px;height:21px;margin:1px 0 0;flex-shrink:0;accent-color:var(--green)}
.remember-login130+p{margin:-4px 0 0}.connection-status130{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.connection-status130>span{flex:1;min-width:210px}.connection-status130 .btn{white-space:nowrap}
fieldset[data-connection-fields130]{display:contents;border:0;margin:0;padding:0;min-width:0}fieldset[data-connection-fields130]:disabled input,fieldset[data-connection-fields130]:disabled textarea,fieldset[data-connection-fields130]:disabled select{opacity:.72}fieldset[data-connection-fields130]:disabled label.btn{opacity:.55;cursor:not-allowed}

/* 1.4.0: original Peter Schlegel artwork, identical to the desktop assets. */
.company-logo140{display:block;width:44px;height:44px;object-fit:contain;background:#fff;border-radius:12px;padding:0;flex-shrink:0}
.login .company-logo140{width:112px;height:112px;border-radius:20px;margin-bottom:23px}
.startup .company-logo140{width:112px;height:112px;border-radius:20px}
.appbar .brand{min-width:0}.appbar .brand span{overflow-wrap:anywhere}
@media(max-width:360px){.appbar .brand span{font-size:10px;letter-spacing:.7px}.appbar .company-logo140{width:40px;height:40px}}
