/* Shared mobile layout. Presentation only; storage, permissions and uploads stay unchanged. */
.mobile-app-dock{display:none}
.live-photo-note{margin:0 0 16px;padding:12px 16px;border:1px solid #ead9b4;border-radius:12px;background:#fff9ed;color:#735923;font-size:14px;line-height:1.7}
.live-photo-note summary{cursor:pointer;font-weight:650;min-height:32px;display:flex;align-items:center;gap:8px}
.live-photo-note p{margin:8px 0 0}.live-photo-note a{color:inherit}
.guide>summary{font-size:17px;font-weight:650;cursor:pointer;min-height:44px;display:flex;align-items:center}
@media(max-width:780px){
 :root{--mobile-dock-height:calc(64px + env(safe-area-inset-bottom,0px));--mobile-gap:14px}
 html{-webkit-text-size-adjust:100%;scroll-padding-bottom:calc(var(--mobile-dock-height) + 18px)}
 body{min-width:0;padding-bottom:var(--mobile-dock-height);font-size:15px}
 input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px!important}
 button,input,select,textarea{touch-action:manipulation}
 button,a,summary{ -webkit-tap-highlight-color:transparent }
 .mobile-app-dock{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:var(--mobile-dock-height);padding:5px max(8px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid #dde4ee;background:#fffffff5;backdrop-filter:blur(16px);box-shadow:0 -3px 18px #23385a09}
 .mobile-app-dock a{min-width:0;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:10px;text-decoration:none;color:#64748b;font:500 12px/1.2 system-ui,-apple-system,'PingFang SC',sans-serif;white-space:nowrap}
 .mobile-app-dock a[aria-current=page]{color:#245fda;background:#edf3ff;font-weight:700}
 .mobile-app-dock svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
 .mobile-app-dock a:focus-visible{outline:2px solid #245fda;outline-offset:-2px}
 [data-mobile-app] .login-view{min-height:calc(100dvh - var(--mobile-dock-height));padding:22px 18px;justify-content:center}
 [data-mobile-app] .login-card{width:min(100%,420px);padding:24px 20px;border-radius:18px}
 [data-mobile-app] .login-card h1{font-size:25px;line-height:1.3}
 [data-mobile-app] .login-card p{font-size:14px;line-height:1.65}
 [data-mobile-app] .login-card label{font-size:14px}
 [data-mobile-app] .login-card button[type=submit]{min-height:48px;font-size:16px;width:100%;margin-top:8px}
 [data-mobile-app] .login-card .app-links,[data-mobile-app] .topbar .app-links{display:none}
 [data-mobile-app] .login-card .privacy-note,[data-mobile-app] .login-card .login-footnote{font-size:12px!important}

 /* Workbench: all four applications are reachable without oversized cards. */
 [data-mobile-app=home] .page{padding:0 max(16px,env(safe-area-inset-left));min-height:calc(100dvh - var(--mobile-dock-height))}
 [data-mobile-app=home] .topbar{min-height:64px;padding-top:max(10px,env(safe-area-inset-top));align-items:center}
 [data-mobile-app=home] main{margin:0;padding:14px 0 20px}
 [data-mobile-app=home] .intro{margin-bottom:20px}
 [data-mobile-app=home] .intro .eyebrow{display:none}
 [data-mobile-app=home] h1{font-size:28px;letter-spacing:-.03em}
 [data-mobile-app=home] .intro p{font-size:14px;line-height:1.6;margin-top:8px}
 [data-mobile-app=home] .applications{grid-template-columns:1fr;gap:12px}
 [data-mobile-app=home] .app-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:13px;padding:17px 16px;border-radius:16px}
 [data-mobile-app=home] .card-top{display:block;grid-row:1 / 3}
 [data-mobile-app=home] .app-icon{width:44px;height:44px;border-radius:13px}
 [data-mobile-app=home] .app-icon svg{width:29px;height:29px}
 [data-mobile-app=home] .app-type{display:none}
 [data-mobile-app=home] .card-copy{padding:0;min-width:0}
 [data-mobile-app=home] h2{font-size:19px;margin:0 0 5px;line-height:1.35}
 [data-mobile-app=home] .card-copy p{font-size:13px;line-height:1.65}
 [data-mobile-app=home] .desktop-break{display:none}
 [data-mobile-app=home] .card-bottom{grid-column:2;border:0;padding-top:8px;flex-direction:row;gap:6px;margin:0;align-items:center}
 [data-mobile-app=home] .feature-list{font-size:12px}
 [data-mobile-app=home] .enter-link{font-size:12px}
 [data-mobile-app=home] .access-note{margin-top:18px;font-size:12px;justify-content:flex-start}
 [data-mobile-app=home] footer{padding:14px 0 18px;font-size:12px}

 /* File list: a compact toolbar, readable rows and transfers above the dock. */
 [data-mobile-app=files] .workspace{width:100%;padding:0 14px 175px}
 [data-mobile-app=files] .topbar{padding:max(10px,env(safe-area-inset-top)) 0 10px;gap:8px;flex-wrap:nowrap}
 [data-mobile-app=files] .brand-title{font-size:18px}
 [data-mobile-app=files] .topbar>.quiet{font-size:14px;min-height:44px;padding:8px 10px}
 [data-mobile-app=files] .breadcrumbs{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;margin:7px -4px 8px;font-size:13px;min-height:40px}
 [data-mobile-app=files] .breadcrumbs button{flex-shrink:0;min-height:40px;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 [data-mobile-app=files] .toolbar{display:block;margin-bottom:12px}
 [data-mobile-app=files] .directory-heading{margin-bottom:12px}
 [data-mobile-app=files] .directory-heading h1{font-size:22px;line-height:1.4}
 [data-mobile-app=files] .directory-summary{font-size:12px;margin-top:3px}
 [data-mobile-app=files] .actions{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:8px;width:100%}
 [data-mobile-app=files] .actions button{font-size:14px;min-height:46px;padding:10px 8px;gap:6px;white-space:nowrap}
 [data-mobile-app=files] #refreshButton span{display:none}
 [data-mobile-app=files] #refreshButton svg{width:20px;height:20px}
 [data-mobile-app=files] .filter-panel{gap:8px;margin-bottom:12px}
 [data-mobile-app=files] .search-bar{flex:1 1 100%;min-width:0}
 [data-mobile-app=files] .search-bar input{min-height:46px}
 [data-mobile-app=files] .filter-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;gap:8px}
 [data-mobile-app=files] .select-field{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px}
 [data-mobile-app=files] .select-field select{min-width:0;width:100%;min-height:42px;padding:8px 24px 8px 8px;font-size:14px!important}
 [data-mobile-app=files] #clearFilters{grid-column:1/-1;text-align:left}
 [data-mobile-app=files] .table-head{display:none}
 [data-mobile-app=files] .file-row{grid-template-columns:minmax(0,1fr) auto;gap:1px 8px;min-height:96px;padding:12px 10px}
 [data-mobile-app=files] .name-text{font-size:15px;line-height:1.45;overflow-wrap:anywhere}
 [data-mobile-app=files] .file-icon{width:34px;height:40px;font-size:10px;flex:none}
 [data-mobile-app=files] .file-name{gap:9px;grid-column:1;grid-row:1}
 [data-mobile-app=files] .file-size{grid-column:1;grid-row:2}
 [data-mobile-app=files] .file-date{grid-column:1;grid-row:3}
 [data-mobile-app=files] .file-size,[data-mobile-app=files] .file-date{font-size:12px;padding-left:43px;line-height:1.5}
 [data-mobile-app=files] .row-actions{gap:2px;grid-column:2;grid-row:1/4}
 [data-mobile-app=files] .row-actions>button,[data-mobile-app=files] .row-menu>summary{min-height:44px;min-width:44px;font-size:13px}
 [data-mobile-app=files] .transfers{bottom:calc(var(--mobile-dock-height) + 8px);left:10px;right:10px;max-height:calc(100dvh - var(--mobile-dock-height) - 24px)}
 [data-mobile-app=files] #transferList{max-height:38dvh}
 [data-mobile-app=files] .row-menu-popover{bottom:calc(var(--mobile-dock-height) + 12px)}
 [data-mobile-app=files] .preview-dialog{padding:0!important;inset:0;margin:0;width:100%;height:100dvh;max-height:100dvh;border-radius:0}
 [data-mobile-app=files] .preview-close,[data-mobile-app=files] .preview-download,[data-mobile-app=files] .preview-toolbar button{min-height:44px;font-size:14px}
 [data-mobile-app=files] .preview-toolbar{justify-content:flex-start;gap:6px;padding:8px}
 [data-mobile-app=files] .preview-footer{flex-wrap:wrap;padding:10px 12px max(10px,env(safe-area-inset-bottom))}
 [data-mobile-app=files] .preview-note{font-size:12px!important;flex:1 1 180px}

 /* Photos: put the actual album on the first screen. */
 [data-mobile-app=photos] .shell{width:100%;padding:0 14px 22px}
 [data-mobile-app=photos] .topbar{padding:max(10px,env(safe-area-inset-top)) 0 10px;border-bottom:0}
 [data-mobile-app=photos] .brand strong{font-size:17px}
 [data-mobile-app=photos] .topbar>.quiet{min-height:44px;font-size:14px}
 [data-mobile-app=photos] .hero{display:block;margin:4px 0 10px;padding:16px;border-radius:16px;background:#fff}
 [data-mobile-app=photos] .hero .eyebrow{display:none}
 [data-mobile-app=photos] .hero h1{font-size:22px;margin-bottom:6px}
 [data-mobile-app=photos] .hero p:last-child{font-size:14px;line-height:1.6}
 [data-mobile-app=photos] .choose{min-height:48px;font-size:16px;margin-top:12px;padding:11px 12px;width:100%}
 [data-mobile-app=photos] .live-photo-note{padding:0 12px;margin:0 0 16px;font-size:13px;border-radius:10px}
 [data-mobile-app=photos] .live-photo-note summary{min-height:44px;font-size:13px;line-height:1.4}
 [data-mobile-app=photos] .live-photo-note p{margin:0 0 12px}
 [data-mobile-app=photos] #selectionCard[hidden]~.stats{display:none}
 [data-mobile-app=photos] .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}
 [data-mobile-app=photos] .stats article{padding:10px 8px;border-radius:12px;display:block}
 [data-mobile-app=photos] .stats strong{font-size:21px}
 [data-mobile-app=photos] .stats span{font-size:11px}
 [data-mobile-app=photos] .library{padding:0;margin-bottom:20px;border:0;box-shadow:none;background:transparent}
 [data-mobile-app=photos] .section-head h2{font-size:18px}
 [data-mobile-app=photos] .section-head>.quiet{min-height:44px;font-size:14px}
 [data-mobile-app=photos] #libraryStatus{font-size:12px;margin:4px 0 10px;line-height:1.55}
 [data-mobile-app=photos] .search-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
 [data-mobile-app=photos] #photoSearch{min-height:44px;background:#fff;padding:9px 12px}
 [data-mobile-app=photos] .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 6px;margin:12px 0}
 [data-mobile-app=photos] .photo-cover{border-radius:8px}
 [data-mobile-app=photos] .photo-name{font-size:12px;line-height:1.4;margin-top:5px}
 [data-mobile-app=photos] .photo-meta,[data-mobile-app=photos] .photo-badge{font-size:11px}
 [data-mobile-app=photos] .selection,[data-mobile-app=photos] .history,[data-mobile-app=photos] .guide,[data-mobile-app=photos] .transfers{padding:14px;border-radius:14px;margin-bottom:12px}
 [data-mobile-app=photos] .history summary{min-height:44px;display:flex;align-items:center;font-size:15px}
 [data-mobile-app=photos] .guide>summary{font-size:15px}
 [data-mobile-app=photos] .photo-viewer{margin:0;inset:0;width:100%;height:100dvh;max-height:100dvh;max-width:100%;border-radius:0;padding:0}
 [data-mobile-app=photos] .photo-viewer[open]{display:flex;flex-direction:column}
 [data-mobile-app=photos] .photo-viewer header{flex:none;padding:max(10px,env(safe-area-inset-top)) 12px 10px}
 [data-mobile-app=photos] .photo-viewer header button{min-height:44px;font-size:14px}
 [data-mobile-app=photos] #viewerBody{height:auto;min-height:0;flex:1;overflow:auto}
 [data-mobile-app=photos] .photo-viewer footer{flex:none;padding:10px 10px;gap:8px}
 [data-mobile-app=photos] .photo-viewer footer button{min-height:44px;font-size:14px;padding:10px}
 [data-mobile-app=photos] #viewerNotice{flex:none;min-height:34px;font-size:12px;padding:0 10px max(12px,env(safe-area-inset-bottom))}
 [data-mobile-app=photos] #toast{bottom:calc(var(--mobile-dock-height) + 10px)}

 /* Notes: one scrollable pane, with app navigation outside the editor. */
 [data-mobile-app=notes]{padding-bottom:0}
 [data-mobile-app=notes] .workspace{height:calc(100dvh - var(--mobile-dock-height));grid-template-columns:minmax(0,1fr);margin:0}
 [data-mobile-app=notes] .note-list-panel,[data-mobile-app=notes] .editor-panel{height:100%;min-height:0}
 [data-mobile-app=notes] .login-brand{font-size:24px;margin-bottom:20px}
 [data-mobile-app=notes] .login-bottom{margin-top:20px;font-size:12px}
 [data-mobile-app=notes] .mobile-brand{padding:max(10px,env(safe-area-inset-top)) 16px 8px;flex-wrap:nowrap;min-height:58px}
 [data-mobile-app=notes] .mobile-brand strong{font-size:20px;letter-spacing:0}
 [data-mobile-app=notes] .mobile-hub-link{display:none}
 [data-mobile-app=notes] .mobile-brand>.button{margin-left:auto;font-size:14px;min-height:44px}
 [data-mobile-app=notes] .list-heading{padding:6px 16px 10px}
 [data-mobile-app=notes] .list-heading .eyebrow{display:none}
 [data-mobile-app=notes] .list-heading h1{font-size:22px;margin:0}
 [data-mobile-app=notes] .list-heading .icon-button{width:44px;height:44px}
 [data-mobile-app=notes] .search-wrap{margin:0 16px}
 [data-mobile-app=notes] .list-controls{padding:10px 16px}
 [data-mobile-app=notes] .list-controls select{font-size:14px!important;min-height:42px!important}
 [data-mobile-app=notes] .note-list{padding:0 10px 12px;scrollbar-gutter:auto}
 [data-mobile-app=notes] .note-card{padding:15px 12px;border-bottom:1px solid #e6ebdf}
 [data-mobile-app=notes] .note-card h2{font-size:16px}
 [data-mobile-app=notes] .note-card p{font-size:14px;margin-bottom:10px;line-height:1.6;color:#65745c}
 [data-mobile-app=notes] .note-card-footer{font-size:12px;color:#768166}
 [data-mobile-app=notes] .mobile-bottom-nav{position:static;padding:4px 8px;background:#f6f8f1}
 [data-mobile-app=notes] .mobile-bottom-nav button{min-height:44px;min-width:0;flex:1;font-size:14px;color:#657858}
 [data-mobile-app=notes] .editor-header{padding:8px 10px;flex-wrap:nowrap;min-height:60px}
 [data-mobile-app=notes] .editor-header .icon-button,[data-mobile-app=notes] .editor-actions .button.small{min-width:44px;min-height:44px;font-size:14px}
 [data-mobile-app=notes] .save-status{font-size:12px;color:#65745c}
 [data-mobile-app=notes] .note-paper{padding:20px 16px}
 [data-mobile-app=notes] .note-title{font-size:24px!important;line-height:1.5}
 [data-mobile-app=notes] .note-meta{font-size:12px;gap:8px;margin-bottom:12px}
 [data-mobile-app=notes] .tag-editor{padding-bottom:12px}
 [data-mobile-app=notes] .ql-toolbar.ql-snow{padding:6px 0;margin:0;overflow-x:auto;white-space:nowrap}
 [data-mobile-app=notes] .ql-toolbar.ql-snow .ql-formats>button{height:44px;width:40px;padding:10px}
 [data-mobile-app=notes] .ql-snow .ql-picker.ql-header{height:44px}
 [data-mobile-app=notes] .ql-snow .ql-picker-label{padding-top:10px}
 [data-mobile-app=notes] .ql-editor{font-size:16px;line-height:1.85;padding-top:18px}
 [data-mobile-app=notes] .attachment-body a{font-size:14px}
 [data-mobile-app=notes] .attachment-body small,[data-mobile-app=notes] .note-footer{font-size:12px}
 [data-mobile-app=notes] .attachment-help,[data-mobile-app=notes] .no-attachments{font-size:12px;color:#768166}
 [data-mobile-app=notes] .toast{bottom:calc(var(--mobile-dock-height) + 12px)}
 [data-mobile-app=notes] .modal{max-height:calc(100dvh - 24px)}

 /* Management: readable record cards instead of a six-column phone table. */
 [data-mobile-app=manage] .shell{width:auto;margin:0;padding:14px 14px 24px}
 [data-mobile-app=manage] .topbar{padding-top:env(safe-area-inset-top);margin-bottom:16px;gap:10px;flex-direction:column}
 [data-mobile-app=manage] .topbar .eyebrow{display:none}
 [data-mobile-app=manage] h1{font-size:24px;margin-bottom:5px}
 [data-mobile-app=manage] .subtitle{font-size:14px}
 [data-mobile-app=manage] .header-actions{display:flex;gap:8px;width:100%;flex-wrap:wrap}
 [data-mobile-app=manage] .header-actions .link-button{display:inline-flex;font-size:14px;min-height:44px}
 [data-mobile-app=manage] .header-actions button{width:auto;min-height:44px;font-size:14px;flex:1}
 [data-mobile-app=manage] .quick-nav{display:none}
 [data-mobile-app=manage] .summary{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;margin-bottom:14px;scroll-snap-type:x proximity}
 [data-mobile-app=manage] .summary article{min-width:112px;min-height:86px;padding:12px 14px;scroll-snap-align:start;flex:none}
 [data-mobile-app=manage] .summary strong{font-size:25px}
 [data-mobile-app=manage] .summary span{font-size:13px}
 [data-mobile-app=manage] .card{padding:16px;border-radius:16px;margin-bottom:14px}
 [data-mobile-app=manage] h2{font-size:20px}
 [data-mobile-app=manage] .section-head{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
 [data-mobile-app=manage] .section-head p{font-size:14px;line-height:1.65}
 [data-mobile-app=manage] .section-head button{min-height:44px;font-size:14px}
 [data-mobile-app=manage] .app-grid{grid-template-columns:1fr;gap:12px}
 [data-mobile-app=manage] .app-card{padding:14px;min-width:0}
 [data-mobile-app=manage] .app-card h3{font-size:18px}
 [data-mobile-app=manage] .app-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 [data-mobile-app=manage] .app-card dd{font-size:13px;line-height:1.6}
 [data-mobile-app=manage] .app-card dt{font-size:12px}
 [data-mobile-app=manage] .app-card-foot{font-size:12px;align-items:stretch;gap:6px}
 [data-mobile-app=manage] .app-card-foot a{min-height:44px;display:flex;align-items:center}
 [data-mobile-app=manage] .table-wrap{margin:0;padding:0;max-height:520px;overflow-y:auto;overscroll-behavior:contain}
 [data-mobile-app=manage] .table-wrap table{display:block;white-space:normal}
 [data-mobile-app=manage] .table-wrap thead{display:none}
 [data-mobile-app=manage] .table-wrap tbody{display:grid;gap:10px}
 [data-mobile-app=manage] .table-wrap tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;border:1px solid #e0e7f0;border-radius:12px;background:#f8faff;min-width:0}
 [data-mobile-app=manage] .table-wrap td{display:block;padding:0;border:0;font-size:14px;line-height:1.6;min-width:0;overflow-wrap:anywhere;max-width:none}
 [data-mobile-app=manage] .table-wrap td::before{display:block;font-size:12px;line-height:1.5;color:#68778c;margin-bottom:2px}
 [data-mobile-app=manage] .table-wrap td[colspan]{grid-column:1/-1}
 [data-mobile-app=manage] #backups td:nth-child(1)::before,[data-mobile-app=manage] #events td:nth-child(1)::before{content:'结果'}
 [data-mobile-app=manage] #backups td:nth-child(2)::before{content:'备份对象'}
 [data-mobile-app=manage] #backups td:nth-child(3)::before,[data-mobile-app=manage] #events td:nth-child(2)::before{content:'类型'}
 [data-mobile-app=manage] #backups td:nth-child(4)::before,[data-mobile-app=manage] #events td:nth-child(4)::before{content:'时间'}
 [data-mobile-app=manage] #backups td:nth-child(5)::before{content:'大小'}
 [data-mobile-app=manage] #backups td:nth-child(6)::before{content:'校验'}
 [data-mobile-app=manage] #events td:nth-child(3)::before{content:'网站 / 使用人'}
 [data-mobile-app=manage] #events td:nth-child(5)::before{content:'IP'}
 [data-mobile-app=manage] #events td:nth-child(6)::before{content:'详情 / 设备'}
 [data-mobile-app=manage] #events td:nth-child(3),[data-mobile-app=manage] #events td:nth-child(6){grid-column:1/-1}
 [data-mobile-app=manage] .audit-filters .filter{min-height:44px;font-size:14px}
 [data-mobile-app=manage] .password-row{grid-template-columns:minmax(0,1fr) auto;font-size:14px;gap:8px}
 [data-mobile-app=manage] .password-row small{font-size:12px!important;line-height:1.6}
 [data-mobile-app=manage] .password-row button{min-height:44px;font-size:14px}
 [data-mobile-app=manage] dialog .actions button{min-height:44px;font-size:14px}
 [data-mobile-app=manage] #toast{bottom:calc(var(--mobile-dock-height) + 12px)}
}
@media(max-width:360px){
 [data-mobile-app=home] .feature-list{display:none}
 [data-mobile-app=photos] .photo-viewer footer button{font-size:13px;padding:8px}
 [data-mobile-app=files] .actions button{font-size:13px}
 [data-mobile-app=manage] .header-actions .link-button{display:none}
}
