/* Shared shell, launch and phone usability fixes — 1.2.1 */
[hidden]{display:none!important}
#launch-loader{position:fixed;inset:0;z-index:1000;background:#f8f6ef;color:#153f31;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px;font-family:system-ui,sans-serif}
#launch-loader strong{font-size:28px}#launch-loader p{margin:0;font-size:14px}.launch-retry{color:#153f31;text-decoration:underline;padding:12px}
.launch-spinner,.data-loading:before{display:inline-block;width:28px;height:28px;border:3px solid #c5d7cc;border-top-color:#153f31;border-radius:50%;animation:suki-spin .8s linear infinite}.data-loading:before{content:"";width:20px;height:20px;vertical-align:middle;margin-right:12px}
@keyframes suki-spin{to{transform:rotate(360deg)}}
button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid #da7b42;outline-offset:3px}
.shell>.sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto;overscroll-behavior:contain}.shell>.main{min-width:0;width:100%}.shell .sidebar>*{flex-shrink:0}.menu-close,.admin-mobile-nav{display:none}
.app-shell~.sukibiz-messenger-link{display:none}body.menu-locked{overflow:hidden}.connection-status{position:fixed;top:env(safe-area-inset-top,0px);left:50%;transform:translateX(-50%);z-index:70;background:#713715;color:white;border-radius:0 0 12px 12px;padding:10px 16px;font:600 13px system-ui;text-align:center;max-width:90vw;pointer-events:none}
@media(max-width:900px){
 .app-shell{display:block!important}.app-shell>.sidebar{display:none!important}.app-shell>.main{width:100%;margin:0;min-width:0}
 .shell>.sidebar{position:fixed;inset:0 auto 0 0;height:100dvh;width:min(310px,86vw);visibility:hidden;transform:translateX(-105%);z-index:60;overflow-y:auto;gap:18px;padding:calc(16px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom))}.shell>.sidebar.open{visibility:visible;transform:none}
 .shell>.scrim{z-index:59}.shell .sidebar .menu-close{display:block;align-self:flex-end;background:#ffffff20;color:white;font-size:26px;border:0;min-width:44px;min-height:44px;border-radius:12px}
 .shell .topbar strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell .topbar .pill{flex:none;font-size:11px}.shell .sidebar nav a{display:block;min-height:44px}
 .shell .list-row{gap:12px;overflow-wrap:anywhere}.shell .list-row>span{min-width:0}.shell .actions{display:flex;flex-wrap:wrap;gap:10px}.shell .actions>*{max-width:100%;white-space:normal}.shell button,.shell .btn{min-height:44px}
 .main .two-col,.main .order-detail-grid,.main .grid-2,.main .grid-3,.main .form-grid{grid-template-columns:minmax(0,1fr)}.main .panel,.main form{min-width:0}.main .form-actions,.main .top-actions,.main .renewal-banner,.main .trial-banner{flex-wrap:wrap}
 .main .table-wrap{max-width:100%;overflow-x:auto}.main .table-wrap:focus-visible{outline-offset:-3px}.main .order-item-line{grid-template-columns:minmax(0,1fr) minmax(65px,.5fr) 44px}.main .remove-item{width:44px;min-height:44px}.main .mini-fields{grid-template-columns:minmax(0,1fr)}
 .main .search{grid-template-columns:minmax(0,1fr) auto}.main .filters{grid-template-columns:minmax(0,1fr)}
 input,select,textarea{font-size:16px!important;min-width:0;max-width:100%}.main .detail-pairs{grid-template-columns:1fr}.main .billing-hero{flex-direction:column}.main .usage-chips{justify-content:flex-start}
 .main .sukibiz-messenger-link,body:has(.app-shell)>.sukibiz-messenger-link{display:none}
 .admin-mobile-nav{display:block;background:#0e3d22;color:white;padding:calc(12px + env(safe-area-inset-top)) 16px 12px}.admin-mobile-nav summary{cursor:pointer;min-height:32px;font-weight:700}.admin-mobile-nav nav{display:grid;gap:8px;padding-top:12px}.admin-mobile-nav a{display:block;color:white;padding:12px}.admin-shell{display:block}.admin-shell>.admin-sidebar{display:none}.admin-main{padding:16px 14px}.admin-main .topbar{flex-wrap:wrap}.admin-main .table-wrap{overflow:auto}
}
@media(min-width:901px){.mobile-app-menu,.mobile-menu-scrim,.bottom-nav,.mobile-menu-toggle{display:none!important}.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr)}.app-shell>.sidebar{display:flex}.shell .react-mobile-tabs,.shell .hamburger,.shell .scrim{display:none!important}}
@media(prefers-reduced-motion:reduce){.launch-spinner,.data-loading:before{animation:none}.sidebar,.mobile-app-menu{transition:none!important}}
@media print{#launch-loader,.connection-status,.sidebar,.bottom-nav,.react-mobile-tabs,.admin-mobile-nav,.sukibiz-messenger-link{display:none!important}.shell,.app-shell{display:block!important}}
