.device-status{padding:6px 12px;text-align:center;background:#e9dfce;color:#655342;font-size:10px}.device-status.error{background:#f8d9c9;color:#812c18}.photo-stage{padding:0}.photo-stage img{width:100%;height:100%;object-fit:cover}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.photo-item{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fffaf2}.photo-item img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.photo-item .photo-actions{padding:5px;display:flex;flex-wrap:wrap;justify-content:center}.photo-item button{font-size:11px;border:0;background:none;min-height:44px;padding:5px}.photo-item.cover{border:2px solid #9b632d}.placeholder-bottle{width:85px;height:120px;opacity:.65}.file-label{display:block;border:1px dashed #bfa684;border-radius:8px;text-align:center;padding:16px;cursor:pointer;min-height:48px}.file-label input{display:block;margin-top:8px;max-width:100%;font-size:11px}.error-box{border:1px solid #bf6c4d;background:#fff0e8;border-radius:8px;padding:13px;color:#852e17;font-size:12px;margin:15px 0;overflow-wrap:anywhere}.error-box:empty{display:none}.help{font-size:11px;color:var(--muted);margin:8px 0}.danger{color:#9b3923;border-color:#cda18d}.small-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.empty-state{padding:35px 14px;text-align:center}.empty-state h2{margin:12px 0}.empty-state p{font-size:13px;color:var(--muted);margin-bottom:22px}.empty-state .primary{min-width:200px}.install{border:0;background:none;color:#8b5f34;font-size:11px}.undo-bar{background:#e8ecdF;border:1px solid #aabb9a;border-radius:8px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:14px}.banner{padding:12px 20px;background:#efe5cf;color:#79522b;font-size:12px}.banner button{margin-left:8px;background:transparent;border:1px solid #b69a70;border-radius:6px;padding:4px 12px}.busy{opacity:.65;pointer-events:none}.detail-hero .photo-stage img{border-radius:12px}.actions-line{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.actions-line>*{flex:1}.subtle{font-size:11px;color:var(--muted)}.scroll-list{max-height:50dvh;overflow:auto}.drive-file{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fffcf7;padding:12px;border-radius:8px;margin:8px 0;overflow-wrap:anywhere}.checkbox{display:flex;align-items:flex-start;gap:10px;padding:12px 0;font-size:12px;cursor:pointer}.checkbox input{width:20px;height:20px;flex:none;accent-color:var(--amber)}button:disabled{cursor:default;opacity:.45}.stats{flex-wrap:wrap}.bottle-copy h3{overflow-wrap:anywhere}.history-card h3{overflow-wrap:anywhere}.backup-origin{overflow-wrap:anywhere;font-size:10px;color:var(--muted)}.page-bottom{margin-top:20px}.form-error{scroll-margin-top:20px}.toast{max-height:180px;overflow:auto}.record-buttons{display:flex;gap:8px;border-top:1px solid var(--line);margin-top:8px}.record-buttons button{flex:1}.summary-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0;font-size:12px}.summary-list strong{text-align:right}.restore-status{font-size:12px;margin:12px 0;color:var(--green)}.light-card{background:#fff9f0;padding:18px;border:1px solid var(--line);border-radius:10px}.score-row input{min-width:0}.radio-row{align-items:center}.radio-row input{margin:0}.form-section h3{margin-bottom:10px}.inline-msg{font-size:12px;white-space:pre-wrap}.gallery-button{border:0;background:transparent;padding:0;width:100%}.large-photo{display:block;max-width:100%;max-height:65dvh;object-fit:contain;margin:12px auto}.no-wrap{white-space:nowrap}@media(max-width:640px){.title-row h1{font-size:26px}.title-row .secondary{font-size:11px;padding:8px 12px}.photo-grid{grid-template-columns:repeat(2,1fr)}.detail-hero h1{overflow-wrap:anywhere}.detail-actions{gap:7px}.detail-actions button{padding:10px}.fields{grid-template-columns:1fr 1fr}.backup-card{padding:16px}.nav{min-height:48px}}

.photo-source-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.photo-source-options .file-label{min-width:0}.file-label:focus-within{outline:2px solid var(--amber);outline-offset:3px}
