/* v0.10 mobile pass. Loaded after style.css; desktop (>900px) is unchanged apart from the hidden menu button. */
.navtoggle{display:none}
@media(max-width:900px){
 body{font-size:15px}
 .shell{display:block}
 aside{display:block;width:100%;padding:10px 16px;border-right:0;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;max-height:100vh;overflow-y:auto}
 aside .brand{display:inline-flex;align-items:center;gap:8px;width:auto;margin:0;min-height:44px}
 .navtoggle{display:inline-flex;float:right;align-items:center;gap:8px;min-height:44px;padding:6px 14px;background:#eaf6f7;color:#07585c;border:1px solid #cfe3e6}
 .navtoggle:hover{background:#dff0f2;color:#07585c;transform:none}
 .navtoggle .bars{width:16px;height:2px;background:currentColor;box-shadow:0 5px 0 currentColor,0 -5px 0 currentColor}
 aside:not(.open)>*:not(.brand):not(.navtoggle){display:none}
 aside.open{padding-bottom:18px}
 aside.open>*:not(.brand):not(.navtoggle){display:block;clear:both;width:100%}
 aside.open>.user{display:grid;margin-top:10px}
 aside.open a.nav,aside.open summary.nav{display:flex;width:100%;padding:12px 14px;font-size:15px;min-height:44px;align-items:center;justify-content:space-between}
 aside.open details.navgroup{margin:2px 0}
 aside.open .navsub{display:block;margin:2px 0 6px 14px;padding-left:10px;border-left:2px solid #09757a55}
 aside.open .subnav{display:flex;padding:11px 12px;font-size:14px;min-height:42px;align-items:center;justify-content:space-between}
 summary.nav{list-style:none;cursor:pointer}
 summary.nav::-webkit-details-marker{display:none}
 summary.nav::after{content:"▸";margin-left:auto;color:#6e6e73}
 details[open]>summary.nav::after{content:"▾"}
 main.workspace{padding:18px 14px 28px}
 .account-top{padding:12px 14px;gap:8px;position:static}
 .account-top .plan-label{width:100%;font-size:14px}
 .account-top .button{flex:1 1 0;min-height:42px;padding:8px 10px;font-size:13px}
 h1{font-size:28px;line-height:1.15}
 h2{font-size:20px}
 .heading{margin-bottom:16px;gap:10px}
 .card{padding:16px;margin-bottom:14px}
 .grid,.grid.two,.grid.stats{grid-template-columns:1fr;gap:12px}
 .stats .card{min-height:0;padding:14px 16px}
 .stats .metric,.metric{font-size:28px}
 .split{flex-direction:column;align-items:flex-start;gap:10px}
 .form-grid{grid-template-columns:1fr}
 .form-grid .span2{grid-column:auto}
 input,select,textarea{max-width:100%}
 .hero{padding:28px 16px 30px;gap:22px}
 .hero h1,.marketing .hero h1{font-size:32px;line-height:1.1}
 .hero .lead{font-size:16px}
 .hero .flex{grid-template-columns:1fr 1fr;max-width:none}
 .topbar{padding:12px 16px;min-height:0}
 .topbar nav{gap:8px}
 .topbar nav .button{padding:8px 12px;min-height:40px;font-size:13px}
 .section{padding-left:14px;padding-right:14px}
 .search-layout{grid-template-columns:1fr}
 .order-panel{order:-1}
 .order-panel h2{margin-bottom:12px}
 .order-panel label{display:block;margin:10px 0 6px}
 .order-panel button{width:100%}
 .searchbar{display:flex;gap:8px;padding:10px}
 .searchbar input{flex:1;min-width:0}
 .tile-grid{grid-template-columns:1fr}
 .footer{padding:18px 14px;font-size:12px}
}
@media(max-width:700px){
 /* Tables become labelled cards: nothing is hidden behind sideways scrolling. */
 .table-wrap{overflow:visible;border:0;font-size:14px;border-radius:0}
 .table-wrap table,.table-wrap table.clean-table,.table-wrap table.svc-table{min-width:0!important;width:100%;display:block;border:0}
 .table-wrap thead{display:none}
 .table-wrap tbody{display:block}
 .table-wrap tr{display:block;margin:0 0 12px;padding:4px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
 .table-wrap td{display:grid;grid-template-columns:minmax(80px,36%) minmax(0,1fr);gap:10px;padding:9px 0;border:0;border-bottom:1px dashed #dce8eb;text-align:left;white-space:normal!important;overflow-wrap:anywhere;word-break:normal;align-items:start}
 .table-wrap td:last-child{border-bottom:0}
 .table-wrap td::before{content:attr(data-label);font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#6e6e73;padding-top:2px}
 .table-wrap td[data-label=""]{display:block}
 .table-wrap td[data-label=""]::before,.table-wrap td:not([data-label])::before{display:none}
 .table-wrap td:not([data-label]){display:block}
 .table-wrap td .cv{min-width:0}
 .table-wrap td form,.table-wrap td button,.table-wrap td .button{max-width:100%}
 .table-wrap .admin-actions{display:block}
 .table-wrap .admin-actions details>summary{cursor:pointer;font-weight:700;color:#07585c;min-height:44px;display:flex;align-items:center}
 .table-wrap .admin-actions form{display:block;margin:8px 0}
 .table-wrap .admin-actions button{width:100%}
 .table-wrap tr:has(td[colspan]){padding:12px 14px;color:#6e6e73}
 .stats+.card table th,.stats+.card table td{padding:9px 0}
 .invoicemeta .table-wrap td{grid-template-columns:minmax(80px,36%) minmax(0,1fr)}
 .tag{white-space:normal}
 .grid{grid-template-columns:1fr}
}

@media(max-width:700px){
.card.anchor.fold>h2{cursor:pointer;margin:0;display:flex;justify-content:space-between;align-items:center;gap:12px}
.card.anchor.fold>h2:after{content:'+';font-size:22px;font-weight:500}
.card.anchor.fold.unfolded>h2:after{content:'\2212'}
.card.anchor.fold.unfolded>h2{margin-bottom:16px}
.card.anchor.fold:not(.unfolded)>*:not(h2){display:none}
}
