:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#e8e8e8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;background-color:#e8e8e8;background-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" opacity="0.10"><defs><radialGradient id="alephaGlow" cx="50%25" cy="50%25" r="50%25"><stop offset="0%25" style="stop-color:%23c9985a;stop-opacity:1" /><stop offset="100%25" style="stop-color:%231a237e;stop-opacity:0" /></radialGradient><linearGradient id="alephaGradient" x1="0%25" y1="0%25" x2="100%25" y2="100%25"><stop offset="0%25" style="stop-color:%231a237e;stop-opacity:1" /><stop offset="100%25" style="stop-color:%233949ab;stop-opacity:1" /></linearGradient></defs><circle cx="100" cy="100" r="95" fill="none" stroke="%231a237e" stroke-width="1" opacity="0.3"/><circle cx="100" cy="100" r="75" fill="none" stroke="%233949ab" stroke-width="0.5" opacity="0.25"/><circle cx="100" cy="100" r="55" fill="none" stroke="%235e35b1" stroke-width="0.5" opacity="0.3"/><circle cx="100" cy="100" r="35" fill="none" stroke="%237e57c2" stroke-width="0.5" opacity="0.35"/><line x1="100" y1="10" x2="100" y2="40" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="100" y1="190" x2="100" y2="160" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="10" y1="100" x2="40" y2="100" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="190" y1="100" x2="160" y2="100" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="28.3" y1="28.3" x2="50" y2="50" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><line x1="171.7" y1="171.7" x2="150" y2="150" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><line x1="171.7" y1="28.3" x2="150" y2="50" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><line x1="28.3" y1="171.7" x2="50" y2="150" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><circle cx="100" cy="100" r="20" fill="url(%23alephaGlow)" opacity="0.8"/><circle cx="100" cy="100" r="16" fill="url(%23alephaGradient)" opacity="1"/><circle cx="100" cy="100" r="10" fill="%23c9985a" opacity="0.9"/><circle cx="100" cy="100" r="4" fill="%23fff" opacity="1"/></svg>');background-repeat:repeat;background-size:400px 400px;background-attachment:fixed;background-position:center}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;cursor:pointer;transition:border-color .25s;color:#213547}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;width:100%;background-color:#e8e8e8;background-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" opacity="0.10"><defs><radialGradient id="alephaGlow" cx="50%25" cy="50%25" r="50%25"><stop offset="0%25" style="stop-color:%23c9985a;stop-opacity:1" /><stop offset="100%25" style="stop-color:%231a237e;stop-opacity:0" /></radialGradient><linearGradient id="alephaGradient" x1="0%25" y1="0%25" x2="100%25" y2="100%25"><stop offset="0%25" style="stop-color:%231a237e;stop-opacity:1" /><stop offset="100%25" style="stop-color:%233949ab;stop-opacity:1" /></linearGradient></defs><circle cx="100" cy="100" r="95" fill="none" stroke="%231a237e" stroke-width="1" opacity="0.3"/><circle cx="100" cy="100" r="75" fill="none" stroke="%233949ab" stroke-width="0.5" opacity="0.25"/><circle cx="100" cy="100" r="55" fill="none" stroke="%235e35b1" stroke-width="0.5" opacity="0.3"/><circle cx="100" cy="100" r="35" fill="none" stroke="%237e57c2" stroke-width="0.5" opacity="0.35"/><line x1="100" y1="10" x2="100" y2="40" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="100" y1="190" x2="100" y2="160" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="10" y1="100" x2="40" y2="100" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="190" y1="100" x2="160" y2="100" stroke="%233949ab" stroke-width="1" opacity="0.4"/><line x1="28.3" y1="28.3" x2="50" y2="50" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><line x1="171.7" y1="171.7" x2="150" y2="150" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><line x1="171.7" y1="28.3" x2="150" y2="50" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><line x1="28.3" y1="171.7" x2="50" y2="150" stroke="%233949ab" stroke-width="0.8" opacity="0.3"/><circle cx="100" cy="100" r="20" fill="url(%23alephaGlow)" opacity="0.8"/><circle cx="100" cy="100" r="16" fill="url(%23alephaGradient)" opacity="1"/><circle cx="100" cy="100" r="10" fill="%23c9985a" opacity="0.9"/><circle cx="100" cy="100" r="4" fill="%23fff" opacity="1"/></svg>');background-repeat:repeat;background-size:400px 400px;background-attachment:fixed;background-position:center;padding:20px}.login-box{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:48px 40px;max-width:420px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center}.login-logo{width:120px;height:120px;margin-bottom:32px;opacity:.9}.login-logo svg{width:100%;height:100%}.login-title{font-size:32px;font-weight:700;margin:0 0 8px;color:#213547;letter-spacing:.5px}.login-tagline{font-size:16px;color:#666;margin:0 0 32px;font-weight:400}.login-form{width:100%;display:flex;flex-direction:column;gap:24px}.login-subtitle{font-size:14px;color:#555;margin:0;font-weight:500}.google-button-container{justify-content:center;padding:12px 0;min-height:48px;display:flex;align-items:center}.login-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:#f5f5f5;border-radius:8px}.spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top:3px solid #3949ab;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-loading p{margin:0;font-size:14px;color:#555}.login-privacy{font-size:12px;color:#999;margin:0;line-height:1.6}@media (max-width: 480px){.login-box{padding:32px 24px}.login-title{font-size:28px}.login-logo{width:100px;height:100px;margin-bottom:24px}}.photo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:24px}.sidebar-brand{text-align:center;margin-bottom:24px}.sidebar-brand svg{width:160px;height:auto;margin-bottom:4px}.sidebar-brand p{margin:4px 0 0;font-size:11px;color:#666;font-style:italic;letter-spacing:.5px}.photo-item{position:relative;border-radius:10px;overflow:hidden;background:#111;box-shadow:0 6px 18px #0000002e;width:100%;aspect-ratio:1 / 1}.photo-item{z-index:1}.photo-item:hover{z-index:100}.photo-thumb{width:100%;height:100%;object-fit:cover;display:block}.photo-overlay{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,#0000,#0009 60%);color:#fff;padding:8px;display:flex;flex-direction:column;justify-content:flex-end;transform:translateY(100%);transition:transform .2s ease}.photo-item:hover .photo-overlay{transform:translateY(0)}.photo-overlay{pointer-events:none}.photo-overlay>*{pointer-events:auto}.photo-overlay .meta{font-size:12px;opacity:.9}.selected-ring{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:#ffffff1f;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.photo-item.selected{box-shadow:0 8px 28px #4caf5047;outline:3px solid rgba(76,175,80,.15)}.lightbox-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10000}.lightbox-inner{text-align:center}.lightbox-inner img{border-radius:6px;box-shadow:0 10px 30px #0009}#root{max-width:none;margin:0;padding:0;text-align:left}.container{width:100%;padding:2rem;box-sizing:border-box}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.toast-container{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:9999}.toast{background:#222;color:#fff;padding:8px 12px;border-radius:6px;box-shadow:0 4px 12px #0003}.modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:11000;padding:20px}.modal-box{background:#fff;color:#111;border-radius:10px;max-width:720px;width:100%;box-shadow:0 20px 60px #00000080;padding:20px 22px;transform:translateY(8px);animation:modal-pop .16s ease-out forwards}.modal-box h3{margin:0 0 8px}.modal-box p{margin:0 0 12px;color:#333}.modal-box .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.modal-box button{padding:8px 12px;border-radius:6px;border:none;cursor:pointer}.modal-box button:disabled{opacity:.6;cursor:not-allowed}.modal-box button:first-child{background:#f1f1f1;color:#222}.modal-box button:last-child{background:#1976d2;color:#fff}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}.progress-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;z-index:9998}.progress-box{background:#fff;padding:16px 20px;border-radius:8px;min-width:320px}.progress-bar{height:12px;background:#eee;border-radius:6px;overflow:hidden}.progress-bar>i{display:block;height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);width:0%}.tooltip-box{position:absolute;padding:6px 8px;background:#000000d9;color:#fff;font-size:13px;border-radius:6px;white-space:nowrap;z-index:12000;pointer-events:none}.tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.album-drag-target{outline:2px dashed #1976d2;background:#1976d20f}
