:root{color:#18181b;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{color:#18181b;background:#fafafa;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.auth-shell,.screen-shell{max-width:960px;margin:0 auto;padding:24px 20px}.auth-shell{place-items:center;min-height:100vh;display:grid}.auth-card,.panel,.modal-card,.lightbox{background:#fff;border:1px solid #e4e4e7;border-radius:16px}.auth-card{gap:20px;width:min(100%,380px);padding:32px 28px;display:grid}.panel{margin-bottom:12px;padding:20px}.page-header,.section-header,.project-card-top,.queue-row,.page-actions-inline,.page-actions,.section-actions,.modal-header,.lightbox-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.page-header{flex-wrap:wrap;margin-bottom:16px}.share-page-header{align-items:flex-start}.share-page-heading{flex:auto;min-width:0}.share-page-heading h1,.share-page-heading .muted{overflow-wrap:anywhere}.staff-header{margin-bottom:12px}.page-actions,.page-actions-inline,.section-actions{flex-wrap:wrap}h1,h2,p{margin:0}h1{letter-spacing:-.02em;color:#18181b;font-size:1.5rem;font-weight:700}h2{color:#18181b;font-size:1rem;font-weight:600}.app-title-row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.app-title-row.compact h1{font-size:1.35rem}.version-badge{color:#a1a1aa;letter-spacing:.02em;font-size:.75rem;font-weight:600}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:#a1a1aa;font-size:.7rem;font-weight:700}.page-subtitle{color:#18181b;font-size:.95rem;font-weight:600}.muted,.photo-meta,.share-meta,.project-meta{color:#71717a;font-size:.85rem}.field{gap:6px;display:grid}.field span{letter-spacing:.06em;text-transform:uppercase;color:#a1a1aa;font-size:.75rem;font-weight:600}input,select{color:#18181b;background:#fafafa;border:1px solid #e4e4e7;border-radius:10px;width:100%;padding:10px 14px;font-size:.95rem;transition:border-color .15s}input:focus,select:focus{background:#fff;border-color:#a1a1aa;outline:none}input::placeholder{color:#a1a1aa}.primary-button,.secondary-button,.danger-button,.icon-button,.camera-button{border:0;border-radius:10px;padding:10px 16px;font-size:.875rem;font-weight:600;transition:background .15s,opacity .15s}.primary-button,.camera-button{color:#fff;background:#18181b}.primary-button:hover,.camera-button:hover{background:#27272a}.secondary-button,.icon-button{color:#52525b;background:0 0;border:1px solid #e4e4e7}.secondary-button:hover,.icon-button:hover{background:#f4f4f5}.header-action-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.secondary-button.share-download-button{color:#fff;background:#18181b;border-color:#18181b}.secondary-button.share-download-button:hover,.secondary-button.share-download-button:focus-visible{color:#fff;background:#27272a;border-color:#27272a}.button-icon{flex:0 0 16px;width:16px;height:16px}.button-label{display:inline-block}.danger-button{color:#dc2626;background:0 0;border:1px solid #fecaca;font-size:.8rem}.danger-button:hover{background:#fef2f2}.camera-button{border-radius:12px;min-height:56px;font-size:1rem}.file-picker-label{justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.file-picker-label.disabled{cursor:not-allowed;opacity:.5}.file-picker-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.file-picker-label.disabled .file-picker-input{cursor:not-allowed}.error-banner,.error-inline{color:#dc2626;background:#fef2f2;border-radius:10px;padding:12px 14px;font-size:.875rem}.image-fallback,.empty-state{color:#71717a;background:#f4f4f5;border-radius:10px;padding:12px 14px;font-size:.875rem}.project-list,.company-list,.queue-list,.photo-grid,.folder-grid,.browser-grid,.capture-panel{gap:8px;display:grid}.project-list{margin-top:12px}.company-list{gap:8px;display:grid}.folder-grid,.photo-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.project-card{text-align:left;background:#fff;border:1px solid #e4e4e7;border-radius:12px;width:100%;padding:14px 16px;transition:border-color .15s,background .15s}.project-card:hover{background:#fafafa;border-color:#a1a1aa}.company-row{text-align:left;background:#fff;border:1px solid #e4e4e7;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.company-row:hover{background:#fafafa;border-color:#a1a1aa}.company-row strong{font-size:.9rem}.subpage-toolbar{margin-bottom:12px}.folder-card,.photo-card{background:#fff;border:1px solid #e4e4e7;border-radius:12px;transition:border-color .15s}.folder-card:hover{border-color:#a1a1aa}.folder-card{text-align:left;gap:4px;padding:14px 16px;display:grid}.folder-card strong{font-size:.9rem}.folder-card span{color:#a1a1aa;font-size:.8rem}.photo-card{display:grid;overflow:hidden}.photo-card.is-selected{border-color:#2563eb}.photo-preview-button{cursor:pointer;background:#f4f4f5;border:0;padding:0;position:relative}.photo-preview-button.is-selectable:after{content:"";background:#18181b00;transition:background .15s;position:absolute;inset:0}.photo-card.is-selected .photo-preview-button.is-selectable:after{background:0 0}.photo-card.is-selected .photo-preview-button{box-shadow:0 0 0 2px #2563eb}.photo-card-media{position:relative}.photo-card-image,.lightbox-image{object-fit:cover;width:100%;display:block}.photo-card-image{aspect-ratio:4/3}.photo-card-compact{background:0 0;border:0;overflow:visible}.photo-card-compact .photo-preview-button{background:0 0;border-radius:18px;overflow:hidden}.photo-card-compact .photo-card-image{border-radius:18px}.photo-selection-badge{-webkit-backdrop-filter:blur(4px);background:#18181b2e;border:2px solid #fffffff5;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;top:10px;right:10px}.photo-selection-badge.is-selected{background:#2563eb;border-color:#2563eb}.photo-selection-dot{background:0 0;border-radius:999px;width:9px;height:9px}.photo-selection-badge.is-selected .photo-selection-dot{background:#fff}.photo-card-body{gap:2px;padding:10px 12px;display:grid}.photo-card-body strong{white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.photo-card .danger-button{margin:0 12px 10px;padding:6px 10px}.capture-panel{margin-top:8px}.capture-actions{gap:8px;display:grid}.address-copy-button{color:#71717a;text-align:left;text-underline-offset:.16em;background:0 0;border:0;margin-top:6px;padding:0;font-size:.92rem;text-decoration:underline}.address-copy-button:hover{color:#18181b}.camera-preview-shell{gap:8px;display:grid}.queue-summary{color:#71717a;font-size:.85rem}.queue-item{gap:6px;display:grid}.progress-track{background:#e4e4e7;border-radius:999px;width:100%;height:4px;overflow:hidden}.progress-bar{background:#18181b;border-radius:999px;height:100%;transition:width .3s}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);background:#00000080;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card,.lightbox{width:min(100%,560px);padding:24px}.modal-card{gap:16px;display:grid}.modal-copy{color:#18181b;font-size:.95rem;font-weight:600}.modal-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.confirm-delete-button{min-width:132px}.lightbox{gap:12px;width:min(100%,760px);display:grid}.lightbox-file-meta{gap:4px;min-width:0;display:grid}.lightbox-file-meta strong{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;line-height:1.3;display:block;overflow:hidden}.lightbox-image-shell{gap:0;min-height:0;display:grid}.lightbox-zoom-surface{touch-action:none;-webkit-user-select:none;user-select:none;cursor:zoom-in;border-radius:10px;gap:0;min-height:0;display:grid;overflow:hidden}.lightbox-zoom-surface.is-zoomed{cursor:grab}.lightbox-zoom-surface.is-dragging{cursor:grabbing}.lightbox-image-loading{color:#52525b;text-align:center;background:#f4f4f5;border-radius:10px;align-content:center;place-items:center;gap:10px;min-height:min(60vh,420px);padding:24px;font-size:.92rem;font-weight:500;display:grid}.loading-spinner{border:3px solid #d4d4d8;border-top-color:#18181b;border-radius:999px;justify-self:center;width:28px;height:28px;animation:.8s linear infinite spin;display:block}.lightbox-image{will-change:transform;border-radius:10px;max-width:100%;max-height:75vh;transition:transform .12s ease-out}.lightbox-image.is-loading{display:none}.share-result{gap:8px;display:grid}.share-photo-grid{gap:12px}.share-gallery-header{margin-bottom:8px}.share-selection-summary{font-size:.82rem;font-weight:500}.share-download-status{gap:10px}.share-download-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.share-download-status-actions{flex:none;align-items:center;gap:8px;display:inline-flex}.share-download-status-text{min-width:0}.share-download-status-text strong{white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;display:block;overflow:hidden}.share-download-status-percent{color:#52525b;font-size:.82rem;font-weight:700}.share-download-cancel-button{color:#52525b;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.share-download-cancel-button:hover,.share-download-cancel-button:focus-visible{background:#f4f4f5}.share-download-cancel-button .button-icon{flex:0 0 16px;width:16px;height:16px}.share-download-progress-track{background:#ececf0;height:8px}.share-download-progress-bar{background:linear-gradient(90deg,#18181b 0%,#3f3f46 55%,#18181b 100%) 0 0/200% 100%;min-width:24px;animation:1.2s linear infinite share-progress-shimmer;position:relative}@keyframes share-progress-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.camera-stage{background:#0f172a;border-radius:20px;min-height:280px;position:relative;overflow:hidden}.camera-stage video{aspect-ratio:4/3;object-fit:cover;background:#020617;width:100%;display:block}.camera-placeholder{text-align:center;color:#cbd5e1;place-items:center;min-height:280px;padding:20px;display:grid}.camera-live-badge{z-index:1;color:#fff;background:#0f172ab8;border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:700;position:absolute;top:14px;left:14px}.camera-fullscreen{z-index:30;background:#000;position:fixed;inset:0}.camera-fullscreen-preview{background:#000;position:absolute;inset:0;overflow:hidden}.camera-fullscreen-preview video,.camera-fullscreen-placeholder{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.camera-preview-frame{touch-action:none;width:100%;height:100%;position:relative}.camera-capture-flash{z-index:1;opacity:0;pointer-events:none;background:#fff;transition:opacity .12s;position:absolute;inset:0}.camera-capture-flash.visible{opacity:.32}.camera-fullscreen-topbar{z-index:1;padding:calc(18px + env(safe-area-inset-top)) 18px 18px;justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute;top:0;left:0;right:0}.camera-folder-badge{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-align:right;background:#000000b8;border-radius:999px;max-width:min(70vw,320px);padding:8px 12px;font-size:.82rem;font-weight:700;overflow:hidden}.camera-close-button{color:#fff;background:#000000b8}.camera-fullscreen-error{z-index:1;position:absolute;bottom:138px;left:18px;right:18px}.camera-fullscreen-controls{z-index:1;padding:18px 18px calc(28px + env(safe-area-inset-bottom));background:linear-gradient(#0000 0%,#000000d1 42%,#000000f5 100%);justify-items:center;gap:14px;display:grid;position:absolute;bottom:0;left:0;right:0}.camera-shutter-button{background:#ffffff2e;border:4px solid #fffffff5;border-radius:999px;justify-content:center;align-items:center;width:84px;height:84px;padding:0;transition:transform 80ms,background 80ms;display:inline-flex;position:relative}.camera-shutter-button:before{content:"";background:#fff;border-radius:999px;width:62px;height:62px;display:block}.camera-shutter-button.is-firing{background:#ffffff47;transform:scale(.94)}.camera-fullscreen-status{color:#e2e8f0;text-align:center;font-size:.95rem}@media (orientation:landscape){.camera-fullscreen-preview{right:calc(138px + env(safe-area-inset-right))}.camera-fullscreen-topbar{padding:calc(18px + env(safe-area-inset-top)) calc(156px + env(safe-area-inset-right)) 18px calc(18px + env(safe-area-inset-left))}.camera-fullscreen-controls{width:calc(138px + env(safe-area-inset-right));padding:calc(24px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) 18px;background:linear-gradient(90deg,#0000 0%,#000000d1 34%,#000000f5 100%);align-content:center;justify-items:center;inset:0 0 0 auto}.camera-fullscreen-status{max-width:96px;font-size:.88rem}.camera-fullscreen-error{right:calc(156px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom))}}@media (width<=640px){.auth-shell,.screen-shell{padding:12px}.panel,.auth-card,.modal-card,.lightbox{border-radius:14px;padding:16px}.modal-backdrop:has(.lightbox){-webkit-backdrop-filter:none;place-items:stretch stretch;padding:0}.lightbox{width:100%;max-width:none;height:100dvh;padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));border-radius:0;grid-template-rows:auto minmax(0,1fr);gap:16px}.lightbox-zoom-surface{border-radius:14px;align-items:center}.lightbox-image-shell{align-items:center}.lightbox-image,.lightbox-image-loading{max-height:100%}.folder-grid,.photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}h1{font-size:1.25rem}.header-action-button{width:40px;height:40px;padding:0}.button-label{display:none}.header-action-button.show-mobile-label{width:auto;min-width:40px;padding:0 12px}.header-action-button.show-mobile-label .button-label{font-size:.82rem;display:inline-block}.share-page-header{flex-wrap:nowrap;align-items:flex-start;gap:8px}.share-page-header .page-actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;width:auto}.share-download-status-row{align-items:flex-start}.share-download-status-text strong{white-space:normal}}
