/* PhoneSpec Studio Cloud v7.2 — additive responsive layer.
   All existing catalog/cloud/PDF/Prompt Library behavior is preserved. */
:root { --mobile-header-height: 62px; }
.mobile-topbar,.mobile-menu-backdrop,.mobile-bottom-nav,.mobile-close-btn {display:none}
.cloud-toolbar {justify-content:flex-end;margin-bottom:12px;gap:9px;min-width:0}
#cloudUserLabel {max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#pageContent, #pageContent > *, .header > div, .panel, .prompt-layout > *, .device, .photo-item {min-width:0}
#pageContent img {max-width:100%}
#pageContent pre, #pageContent code {overflow-wrap:anywhere}
.preview-table td, .preview-table th {overflow-wrap:anywhere;word-break:break-word}

@media (max-width:900px) {
  html {overflow-x:clip}
  body {max-width:100%;overflow-x:clip}
  .app {display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);min-height:100dvh;width:100%;max-width:100%;align-content:start}
  .mobile-topbar {display:flex;align-items:center;gap:11px;padding:10px 15px;min-height:var(--mobile-header-height);position:sticky;top:0;grid-column:1;grid-row:1;background:rgba(255,255,255,.97);border-bottom:1px solid var(--border);z-index:55;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .mobile-menu-btn,.mobile-close-btn {border:1px solid var(--border);border-radius:12px;background:#fff;color:#1d2939;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;font-size:24px;line-height:1}
  .mobile-menu-btn {display:flex}
  .mobile-brand{display:flex;gap:9px;align-items:center;font-size:19px;font-weight:800;letter-spacing:-.5px;min-width:0}
  .mobile-brand-mark{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:#101828;color:white;font-size:21px;flex-shrink:0}
  .mobile-cloud-badge{font-size:10px;font-weight:800;letter-spacing:.2px;background:#eef7f2;color:#16794d;border-radius:8px;padding:7px 9px;margin-left:auto;white-space:nowrap}
  .mobile-cloud-badge span {font-size:8px;margin-right:2px}
  .sidebar {display:flex;flex-direction:column;gap:0;position:fixed;inset:0 auto 0 0;width:min(84vw,310px);max-width:310px;height:100dvh;padding:22px 15px max(20px,env(safe-area-inset-bottom));background:#fff;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--border);box-shadow:0 0 0 transparent;z-index:80;transform:translateX(-105%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .24s ease,opacity .24s ease,visibility .24s;}
  .sidebar .brand {padding-right:36px;margin:0 0 24px;flex-wrap:wrap;gap:8px}
  .sidebar .brand .version{margin-left:0}
  .mobile-close-btn{display:flex;position:absolute;top:16px;right:13px;width:34px;height:34px;font-size:17px}
  .sidebar .nav{display:grid;overflow:visible;gap:5px;flex:0 0 auto;padding-bottom:16px}
  .sidebar .nav button {min-height:45px;width:100%;white-space:normal;flex-shrink:0;font-size:14px}
  .sidebar .sidebarfoot{display:block;position:static;margin-top:auto;padding:17px 5px 4px;line-height:1.5}
  .mobile-menu-backdrop {display:block;position:fixed;inset:0;background:rgba(15,23,42,.47);z-index:70;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .24s ease,visibility .24s}
  body.mobile-menu-open .sidebar{transform:translateX(0);opacity:1;visibility:visible;pointer-events:auto;box-shadow:14px 0 40px #10182820}
  body.mobile-menu-open .mobile-menu-backdrop{visibility:visible;opacity:1;pointer-events:auto}
  body.mobile-menu-open{overflow:hidden}
  .main {grid-column:1;grid-row:2;padding:18px 15px calc(96px + env(safe-area-inset-bottom));margin:0;max-width:100%;width:100%;min-width:0}
  .cloud-toolbar{justify-content:flex-start;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
  .cloud-toolbar #cloudUserLabel{flex:1 0 100%;font-size:11px;max-width:100%;background:#edf1f7;padding:6px 10px;border-radius:9px;width:max-content}
  .cloud-toolbar .btn{white-space:normal;min-height:40px}
  .header{display:flex;flex-direction:column;align-items:stretch;gap:16px;margin-bottom:18px}
  .header > div:first-child{min-width:0;width:100%}
  .header .sub{max-width:65ch;overflow-wrap:anywhere}
  .header h1{font-size:clamp(25px,6.3vw,32px);letter-spacing:-.85px;overflow-wrap:anywhere}
  .header #headerAction{width:100%}
  #headerAction>.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
  #headerAction>.row>.btn{white-space:normal;min-height:49px;padding:10px 9px;width:100%;font-size:13px;line-height:1.25;text-align:center}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
  .metric{padding:15px 16px;min-width:0}
  .metric strong{font-size:27px}
  .metric:nth-child(3):last-child {grid-column:1 / -1}
  .tools {display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}
  .tools>.control,.tools>.search,.tools>select{width:100%!important;max-width:none!important;min-width:0}
  #pageContent .search{min-width:0;flex:1 1 100%}
  .control{max-width:100%;min-width:0;font-size:16px}
  #pageContent .row{min-width:0}
  #pageContent .row > .control{max-width:100%!important}
  .grid2,.grid3,.two-col{grid-template-columns:minmax(0,1fr)}
  .device-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .photo-item{padding:8px}
  .photo-item img{height:156px}
  .photo-actions{gap:5px}
  .photo-actions .btn{white-space:normal;min-height:32px;font-size:11px}
  .panel{padding:15px}
  .device-actions{flex-wrap:wrap}
  .device-actions .btn{flex:1 1 auto;white-space:normal;min-height:40px}
  .detail-top{justify-content:flex-start;gap:15px}
  .detail-top .detail-copy{min-width:0;flex-basis:100%}
  .hero-photo{max-width:100%;height:220px}
  .preview-table{table-layout:fixed;max-width:100%}
  .preview-table th{width:35%;max-width:135px;padding:10px 7px}
  .preview-table td{padding:10px 7px}
  .detail-table th:first-child{width:33px}
  .detail-selection{padding:11px}
  .review-table{max-width:100%;overflow:auto}
  .pick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pick{min-width:0;overflow-wrap:anywhere}
  .tabbar{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:6px;scrollbar-width:thin;max-width:100%}
  .tabbar>.tabbtn{flex:0 0 auto;white-space:nowrap}
  .upload-area,.gallery-drop{padding:21px 12px}
  .gallery-drop input[type=file]{max-width:100%;width:100%}
  .compare-device-list{max-height:350px}
  .compare-chip{max-width:100%;overflow-wrap:anywhere}
  .compare-batch{grid-template-columns:minmax(0,1fr)}
  .prompt-layout{grid-template-columns:minmax(0,1fr)}
  .prompt-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}
  .prompt-toolbar .control{max-width:none;width:100%}
  .prompt-grid{grid-template-columns:minmax(0,1fr)}
  .form-action{justify-content:stretch}
  .form-action .btn{flex:1 1 auto;white-space:normal}
  .mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;z-index:60;padding:7px max(10px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));gap:5px;background:rgba(255,255,255,.98);border-top:1px solid var(--border);box-shadow:0 -8px 24px #1018280d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .mobile-bottom-nav button{border:0;background:transparent;color:#677489;border-radius:12px;min-height:49px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:650;min-width:0;padding:5px 2px}
  .mobile-bottom-nav button span:first-child{font-size:21px;line-height:1.2}
  .mobile-bottom-nav button.active{background:#eaf0ff;color:#2357eb}
  .toast{left:12px;right:12px;bottom:calc(79px + env(safe-area-inset-bottom));max-width:none}
}
@media(max-width:380px){
 .main{padding-left:12px;padding-right:12px}
 .mobile-topbar{padding-left:11px;padding-right:11px}
 .mobile-brand{font-size:17px}
 .mobile-cloud-badge{font-size:9px;padding:6px}
 .gallery-grid{grid-template-columns:minmax(0,1fr)}
 .photo-item img{height:210px}
 .pick-grid{grid-template-columns:minmax(0,1fr)}
 .metric{padding:13px}
}
@media(min-width:901px){.sidebar{display:block}.main{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.sidebar,.mobile-menu-backdrop{transition:none}}
