/* Shared phone layout: preserve every action without a sideways page. */
[hidden]{display:none!important}
.mobile-menu-toggle,.public-menu-toggle,.mobile-nav-cta{display:none}
.hamburger-bars{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:16px;height:14px}
.hamburger-bars>span{display:block;width:16px;height:1.5px;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .2s ease}
button[aria-expanded=true] .hamburger-bars>span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
button[aria-expanded=true] .hamburger-bars>span:nth-child(2){opacity:0}
button[aria-expanded=true] .hamburger-bars>span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
@media screen and (max-width:760px){
  .public-header .nav-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;height:auto!important;min-height:68px;padding-block:12px;gap:0 12px}
  .public-header .brand{font-size:19px;gap:6px}
  .public-header .brand img{width:34px;height:34px}
  .public-header .nav-contact,.public-header .nav-portal-btn{display:none!important}
  .public-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);font-size:13px;font-weight:500}
  .public-header #public-nav{display:none!important;grid-column:1/-1;flex-direction:column;align-items:stretch;gap:4px;width:100%;margin-top:12px;padding:12px 0 6px;border-top:1px solid var(--line)}
  .public-menu-toggle[aria-expanded=true]~#public-nav{display:flex!important}
  .public-header #public-nav a{min-height:46px;padding:11px 14px;font-size:15px;border-radius:5px;color:var(--ink);display:flex;align-items:center;justify-content:space-between}
  .public-header #public-nav a[aria-current]{background:var(--beige);font-weight:600}
  .public-header #public-nav a[aria-current]::after{display:none}
  .public-header #public-nav .mobile-portal-btn{display:flex!important;width:100%;justify-content:center;min-height:46px;margin-top:8px;font-size:14px}
}
@media screen and (max-width:700px){
  .sidebar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 12px}
  .sidebar .brand{margin:0;min-height:44px}
  .mobile-menu-toggle{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:4px;background:var(--white);color:var(--ink);font-size:14px}
  .sidebar #admin-navigation{display:none;grid-column:1/-1;margin-top:12px}
  .mobile-menu-toggle[aria-expanded=true]~#admin-navigation{display:flex}
  .sidebar nav a,.nav-group summary,.sidebar nav .nav-submenu a{min-height:44px;font-size:13px}
  .workspace{padding:24px 16px 40px}
  .workspace-heading{flex-direction:column;align-items:stretch;gap:16px}
  .workspace-heading h1{overflow-wrap:anywhere}
  .workspace-heading>.button{align-self:flex-start}
  .workspace-heading .row-actions{justify-content:flex-start}
  .button,.edit-button,.icon-button{min-height:44px}
  .icon-button{min-width:44px}
  .button,.edit-button{font-size:13px!important}
  .row-actions{flex-wrap:wrap}
  .admin-body input:not([type=checkbox]):not([type=color]),.admin-body textarea,.admin-body select,
  .admin-body .line-numbers input,.admin-body .line-numbers select,.admin-body .line-top input,.admin-body .quote-options input{font-size:16px!important;min-height:44px}
  .field>span,.quote-line .field>span{font-size:12px}
  .collection-toolbar{flex-wrap:wrap}
  .collection-toolbar input,.collection-toolbar select{max-width:none;width:100%}
  .panel-heading{flex-wrap:wrap}
  .admin-body .table-wrap{overflow:visible}
  .admin-body table,.admin-body tbody,.admin-body tr,.admin-body td{display:block;width:100%;white-space:normal}
  .admin-body thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .admin-body tbody tr{padding:16px;border-bottom:1px solid var(--line)}
  .admin-body tbody tr:last-child{border-bottom:0}
  .admin-body td{border:0;padding:7px 0;font-size:13px;overflow-wrap:anywhere}
  .admin-body td[data-label]:not([data-label=""])::before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);margin-bottom:6px}
  .table-title strong{max-width:none;font-size:14px;overflow:visible}
  .table-text-link strong{font-size:14px}
  .table-text-link>small,.table-subtext,.money-cell>small,.table-title small{font-size:12px;line-height:1.6}
  .service-price-list>div{flex-wrap:wrap;gap:5px 12px;font-size:14px}
  .service-price-list small{font-size:12px}
  .status-badge{font-size:11px;padding:6px 9px}
  .payment-history button{min-height:44px;min-width:44px;font-size:12px}
  .payment-history span,.payment-history strong{font-size:12px}
  .money-cell{font-size:14px;line-height:1.7}
  .table-title{align-items:flex-start}
  .table-title>div{min-width:0}
  .stats-grid{grid-template-columns:1fr}
  .stat-label{font-size:12px}
  .stat small{font-size:11px;display:inline;margin-left:12px}
  .recent-item{flex-wrap:wrap}
  .recent-item h3{max-width:none;font-size:13px}
  .recent-item>div{flex:1}
  .recent-item p,.quick-link small{font-size:12px;line-height:1.6}
  .quick-link strong{font-size:14px}
  .form-section-heading{flex-wrap:wrap;align-items:flex-start}
  .form-section-heading h2{font-size:14px}
  .form-section-heading .small-link,.service-shortcuts .small-link{font-size:12px;min-height:44px;display:inline-flex;align-items:center}
  .service-shortcuts{flex-wrap:wrap;gap:8px 20px}
  .line-numbers{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
  .line-numbers>.field:last-of-type{grid-column:1/-1}
  .line-top{align-items:flex-start}
  .quote-line textarea{font-size:16px}
  .quote-totals>div{flex-wrap:wrap;font-size:12px}
  .quote-totals dd{font-size:14px;white-space:normal;overflow-wrap:anywhere}
  .review-check{font-size:13px;padding:10px 0}
  input[type=checkbox]{min-width:20px;min-height:20px}
  .quote-paper{padding:18px}
  .quote-paper-header{flex-wrap:wrap}
  .quote-paper-header>div{text-align:left}
  .preview-table{min-width:0;table-layout:auto}
  .preview-table td:not(:first-child){text-align:left}
  .preview-table th:first-child{width:auto}
  .preview-table p,.quote-paper p{font-size:13px}
  .preview-table td>strong{font-size:14px}
  .preview-actions .button{flex:1 1 145px;justify-content:center;text-align:center}
  .client-contact dl{grid-template-columns:minmax(0,1fr);gap:7px}
  .client-contact dd{font-size:14px;margin-bottom:12px}
  .client-contact dt{font-size:12px}
  .client-stat-row{flex-wrap:wrap}
  dialog{max-height:calc(100dvh - 24px);width:calc(100% - 24px);padding:18px;overflow-y:auto;overscroll-behavior:contain}
  .service-pricing-dialog{width:calc(100% - 24px);padding:18px}
  .dialog-actions{flex-wrap:wrap}
  .dialog-actions .button{flex:1;justify-content:center}
  .upload-field{flex-direction:column;align-items:stretch}
  .upload-content input[type=file]{max-width:100%;font-size:13px!important}
  .discount-presets{gap:7px}
  .discount-presets button{min-height:44px;min-width:44px;font-size:13px}
  .annual-from-monthly{min-height:44px;font-size:13px}
  .pricing-currencies label{min-height:44px;font-size:14px}
  .cycle-rate .field>span{font-size:12px}
  .rate-preview,.pricing-help{font-size:12px}
  .cycle-rate-grid{grid-template-columns:1fr}
  .cycle-rate+.cycle-rate{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:20px}
  .form-footer{flex-direction:column;align-items:stretch}
  .form-footer small{max-width:none;font-size:12px}
  .tabs{overflow-x:auto;gap:20px}
  .tabs a{min-height:44px;flex-shrink:0}
  .workspace-note{align-items:flex-start;font-size:12px}
  .workspace-note svg{flex-shrink:0}
  .admin-error{padding:24px}
}
@media screen and (max-width:380px){
  .public-header .nav-inner{height:auto!important}
  .public-header nav{width:100%}
  .public-header .brand{font-size:19px}
  .hero h1{font-size:clamp(38px,12vw,48px)}
}
@media screen and (max-width:700px){
  .public-header nav a,.nav-contact,.text-link{min-height:44px}
  .hero-art{max-height:none;overflow:visible;margin-inline:0}
  .hero-art>img{margin-top:0}
  .project-caption>div{min-width:0}
  .project-caption h3,.contact-inner h2{overflow-wrap:anywhere}
  .browser-bar{gap:10px;min-width:0}
  .browser-bar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .public-footer{overflow-wrap:anywhere}
}
@media(hover:none){.image-visit{opacity:1;transform:none}}
@media print{
  .mobile-menu-toggle{display:none!important}
}

/* Persistent admin shortcuts, clear of device safe areas and page actions. */
.quick-actions{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:40}
.quick-actions>summary{list-style:none;display:grid;place-items:center;width:56px;height:56px;border:1px solid var(--ink);border-radius:50%;background:var(--ink);color:var(--cream);cursor:pointer;box-shadow:0 4px 16px #22231f26}
.quick-actions>summary::-webkit-details-marker{display:none}
.quick-actions>summary::marker{content:''}
.quick-actions>summary svg{width:25px;height:25px;transition:transform .15s}
.quick-actions[open]>summary svg{transform:rotate(45deg)}
.quick-actions>summary:focus-visible{outline:3px solid var(--amber);outline-offset:4px}
.quick-actions nav{position:absolute;bottom:70px;right:0;width:210px;max-width:calc(100vw - 40px);padding:6px;border:1px solid var(--line);border-radius:7px;background:var(--white);box-shadow:0 6px 24px #22231f1a}
.quick-actions nav a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px;padding:12px 14px;border-radius:4px;font-size:14px}
.quick-actions nav a:hover,.quick-actions nav a:focus-visible{background:var(--beige)}
.quick-actions nav a+a{border-top:1px solid var(--line)}
.admin-body .workspace{padding-bottom:110px}
.admin-body #toast{bottom:calc(90px + env(safe-area-inset-bottom))}
@media print{.quick-actions{display:none!important}.admin-body .workspace{padding-bottom:0}}
