/* share-public.css — stand-alone styles for the public share page */ * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: var(--color-bg-hover); color: var(--color-text-heading); display: flex; justify-content: center; align-items: center; min-height: 100vh; padding: 1rem; } .share-card { background: var(--color-bg-surface); border-radius: var(--radius, 12px); box-shadow: 0 4px 24px var(--color-shadow-sm); padding: 2.5rem; max-width: 480px; width: 100%; text-align: center; } .share-logo { margin-bottom: 1.5rem; } .share-logo h1 { font-size: 1.5rem; font-weight: 700; } .share-logo span { color: var(--color-primary); } /* States */ .hidden { display: none !important; } h2 { font-size: 1.15rem; margin-bottom: 0.5rem; } p.subtitle { color: var(--color-text-gray); font-size: 0.9rem; margin-bottom: 1.25rem; } /* Spinner */ .spinner { width: 36px; height: 36px; border: 3px solid var(--color-border); border-top-color: var(--color-primary); border-radius: 50%; margin: 0 auto 1rem; animation: spin 0.7s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Icons */ .share-icon { font-size: 3rem; margin-bottom: 0.75rem; } /* Password form */ #password-form { text-align: left; } #password-input { width: 100%; padding: 0.75rem 1rem; font-size: 1rem; border: 2px solid var(--color-border); border-radius: 8px; outline: none; background: var(--color-bg-surface); color: var(--color-text-heading); transition: border-color 0.2s; margin-bottom: 0.75rem; } #password-input:focus { border-color: var(--color-primary); } .error-text { color: var(--color-error-text); font-size: 0.85rem; margin-bottom: 0.75rem; } /* Primary button FIXME: use components/buttons.css ? */ .btn-primary { display: inline-block; width: 100%; padding: 0.75rem 1.5rem; background: var(--color-primary); color: #fff; border: none; border-radius: 8px; font-size: 0.95rem; font-weight: 600; cursor: pointer; text-decoration: none; text-align: center; transition: background 0.2s; } .btn-primary:hover { opacity: 0.9; } /* File view */ #file-name { word-break: break-word; } #file-meta { font-size: 0.85rem; } /* Folder view */ .folder-list { text-align: left; margin-top: 1rem; max-height: 400px; overflow-y: auto; } /* Responsive */ @media (max-width: 500px) { .share-card { padding: 1.5rem; } }