:root{font-family:Inter,Outfit,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#0f172a;background-color:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}#root{width:100%;min-height:100vh}:root{--primary: #4f46e5;--primary-glow: rgba(79, 70, 229, .2);--bg-light: #f8fafc;--card-bg: rgba(255, 255, 255, .8);--card-border: rgba(15, 23, 42, .08);--text-main: #0f172a;--text-muted: #475569}.portal-container{min-height:100vh;background-color:var(--bg-light);background-image:radial-gradient(circle at 50% 0%,rgba(99,102,241,.08) 0%,transparent 50%),radial-gradient(circle at 100% 100%,rgba(139,92,246,.05) 0%,transparent 40%);color:var(--text-main);padding:2rem;font-family:Outfit,Inter,sans-serif;position:relative;overflow:hidden;display:flex;flex-direction:column}.portal-grid-background{position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(15,23,42,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.03) 1px,transparent 1px);background-size:50px 50px;-webkit-mask-image:radial-gradient(circle at 50% 50%,black,transparent);mask-image:radial-gradient(circle at 50% 50%,black,transparent);pointer-events:none}.portal-header{text-align:center;margin-bottom:4rem;position:relative;z-index:10}.portal-header h1{font-size:clamp(2.5rem,8vw,4.5rem);font-weight:800;margin-bottom:1.5rem;letter-spacing:-.02em;background:linear-gradient(to bottom,#0f172a,#475569);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.portal-header p{font-size:1.25rem;color:var(--text-muted);max-width:600px;margin:0 auto;line-height:1.6}.portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto;position:relative;z-index:10;width:100%}.portal-card{position:relative;background:var(--card-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:1.5rem;padding:1.5rem;text-decoration:none;color:inherit;transition:all .4s cubic-bezier(.23,1,.32,1);display:flex;flex-direction:column;height:100%;overflow:hidden;box-shadow:0 10px 15px -3px #0000000d}.portal-card-glow{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(79,70,229,.04),transparent 40%);opacity:0;transition:opacity .5s}.portal-card:hover{transform:translateY(-5px);border-color:#4f46e533;background:#fff;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.portal-card:hover .portal-card-glow{opacity:1}.portal-card-icon{width:44px;height:44px;background:linear-gradient(135deg,#4f46e514,#4f46e50a);border:1px solid rgba(79,70,229,.1);border-radius:1.25rem;display:flex;align-items:center;justify-content:center;color:#4f46e5;transition:transform .3s ease}.portal-card:hover .portal-card-icon{transform:scale(1.1) rotate(5deg);background:#4f46e51a}.portal-card-content{flex-grow:1}.portal-card-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.portal-card-header h3{font-size:1.25rem;font-weight:700;background:linear-gradient(to right,#0f172a,#475569);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.portal-card-content p{color:var(--text-muted);line-height:1.6;font-size:.875rem}.portal-card-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(15,23,42,.05);display:flex;align-items:center;justify-content:space-between;color:#4f46e5;font-weight:600;font-size:.875rem;opacity:.8;transition:opacity .3s}.portal-card:hover .portal-card-footer{opacity:1}.portal-footer-lite{margin-top:auto;padding-top:6rem;text-align:center;color:#94a3b8;font-size:.875rem}.textshare-container{padding:2rem 3rem;max-width:1400px;margin:0 auto}.textshare-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:1.5rem;color:#475569}.textshare-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;align-items:start}@media(max-width:1024px){.textshare-grid{grid-template-columns:1fr}}.textshare-card{background:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(15,23,42,.08);border-radius:1.5rem;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.card-actions{display:flex;gap:.5rem}.btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.75rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid transparent}.btn-primary{background:#4f46e514;color:#4f46e5;border-color:#4f46e526}.btn-primary:hover:not(:disabled){background:#4f46e5;color:#fff}.btn-secondary{background:#0f172a08;color:#475569;border-color:#0f172a14}.btn-secondary:hover:not(:disabled){background:#0f172a14;color:#0f172a}.btn-danger{background:#ef44440d;color:#ef4444;border-color:#ef444426}.btn-danger:hover:not(:disabled){background:#ef4444;color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.textarea-wrapper{padding:1rem}.textshare-textarea{width:100%;min-height:400px;background:transparent;border:none;resize:vertical;color:#1e293b;font-family:JetBrains Mono,Fira Code,monospace;font-size:.9375rem;line-height:1.6;outline:none}.card-footer{padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;background:#0f172a05;font-size:.75rem;font-weight:600;color:#64748b;border-top:1px solid rgba(15,23,42,.05)}.status-text{display:flex;align-items:center;gap:.5rem}.status-text.success{color:#059669}.status-text.error{color:#dc2626}.status-text.saving{color:#4f46e5}.drop-zone{margin:1.5rem;aspect-ratio:16/9;border:2px dashed rgba(15,23,42,.1);border-radius:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;background:#0f172a03}.drop-zone:hover,.drop-zone.drag-over{border-color:#4f46e5;background:#4f46e505}.drop-zone.compact{aspect-ratio:auto;padding:1.5rem;margin-top:1rem}.drop-content{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.drop-content p{margin:0;font-weight:600;color:#334155}.drop-content .subtext{font-size:.8125rem;color:#64748b}.file-info-bar{margin:0 1.5rem 1.5rem;padding:1rem;background:#0f172a03;border:1px solid rgba(15,23,42,.05);border-radius:1rem;display:flex;align-items:center;gap:1rem}.file-details{flex:1;min-width:0}.file-name{font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{font-size:.75rem;color:#64748b;margin-top:.25rem}.shortlink-container{padding:2rem 3rem;max-width:1400px;margin:0 auto}.shortlink-status-toast{position:fixed;bottom:2rem;right:2rem;z-index:1000;display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:1rem;background:#fff;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;border:1px solid rgba(15,23,42,.05);font-weight:600;font-size:.875rem;animation:slideInUp .3s cubic-bezier(.23,1,.32,1)}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.shortlink-status-toast.success{color:#059669;border-left:4px solid #059669}.shortlink-status-toast.error{color:#dc2626;border-left:4px solid #dc2626}.shortlink-status-toast.info{color:#4f46e5;border-left:4px solid #4f46e5}.shortlink-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:2rem;align-items:start}@media(max-width:1024px){.shortlink-grid{grid-template-columns:1fr}}.shortlink-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:1.5rem;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.card-header{padding:1.25rem 1.5rem;background:#0f172a03;border-bottom:1px solid rgba(15,23,42,.05);display:flex;justify-content:space-between;align-items:center}.card-title{display:flex;align-items:center;gap:.75rem;color:#4f46e5}.card-title h2{font-size:1.125rem;font-weight:700;margin:0;color:#0f172a}.shortlink-form{padding:2rem}.input-group{margin-bottom:1.5rem}.input-group label{display:block;font-size:.875rem;font-weight:600;color:#475569;margin-bottom:.5rem}.input-with-prefix{display:flex;align-items:stretch;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;overflow:hidden;transition:all .2s}.input-with-prefix:focus-within{border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}.input-with-prefix .prefix{display:flex;align-items:center;justify-content:center;padding:0;min-width:120px;color:#64748b;font-size:.8rem;font-weight:500;border-right:1px solid #e2e8f0;background:#f1f5f9}.input-group input{width:100%;padding:.75rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;color:#1e293b;font-family:inherit;font-size:.9375rem;outline:none;transition:all .2s}.input-with-prefix input{border:none;background:transparent}.input-group input:focus{border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}.btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:.75rem;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid transparent}.btn-primary{background:#4f46e5;color:#fff;box-shadow:0 4px 6px -1px #4f46e533}.btn-primary:hover:not(:disabled){background:#4338ca;transform:translateY(-1px);box-shadow:0 10px 15px -3px #4f46e54d}.btn-full{width:100%;justify-content:center}.btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:.5rem;background:transparent;border:none;color:#64748b;cursor:pointer;transition:all .2s}.btn-icon:hover{background:#0f172a0d;color:#0f172a}.btn-icon.delete-btn:hover{background:#ef444414;color:#ef4444}.link-list-content{min-height:400px}.list-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#64748b;gap:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#94a3b8;gap:1rem;text-align:center}.empty-state p{margin:0;font-weight:700;color:#475569}.empty-state .subtext{font-size:.875rem;color:#94a3b8}.link-list{list-style:none;padding:1.5rem;margin:0}.link-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;background:#fff;border:1px solid #f1f5f9;border-radius:1rem;margin-bottom:1rem;transition:all .3s cubic-bezier(.23,1,.32,1)}.link-item:hover{transform:translate(4px);border-color:#4f46e555;box-shadow:0 10px 15px -3px #0000000a}.link-info{flex:1;min-width:0}.link-main{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.link-key{font-weight:700;color:#4f46e5;font-size:1.125rem}.link-jump{color:#94a3b8;display:flex;align-items:center;transition:color .2s}.link-jump:hover{color:#4f46e5}.copy-btn{color:#94a3b8;transition:color .2s}.copy-btn:hover{background:transparent!important;color:#4f46e5!important}.link-url{display:block;font-size:.8125rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px}.spinner{animation:spin 1s linear infinite}.app-shell{display:flex;flex-direction:column;min-height:100vh;background-color:#f8fafc;color:#0f172a}.app-navbar{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:64px;background:#fffc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(15,23,42,.05);position:sticky;top:0;z-index:50;box-shadow:0 4px 6px -1px #00000008,0 2px 4px -1px #00000005}.navbar-left{display:flex;align-items:center;gap:1rem}.navbar-home-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#64748b;font-weight:500;padding:.5rem .75rem;border-radius:.5rem;transition:all .2s}.navbar-home-link:hover{background:#0f172a0d;color:#0f172a}.navbar-divider{color:#cbd5e1}.navbar-current-app{display:flex;align-items:center;gap:.5rem;color:#4f46e5;font-weight:600}.user-profile-lite{display:flex;align-items:center;gap:1rem}.user-info{display:flex;align-items:center;gap:.75rem}.username{font-size:.875rem;font-weight:600;color:#475569}.avatar-placeholder{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#9333ea);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;box-shadow:0 4px 10px #4f46e533}.navbar-logout-btn{background:#0f172a08;border:1px solid rgba(15,23,42,.05);color:#64748b;width:32px;height:32px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.navbar-logout-btn:hover{background:#ef444414;color:#ef4444;border-color:#ef444433}.app-main-content{flex-grow:1;position:relative}.page-wrapper{height:100%}@media(max-width:640px){.app-navbar{padding:0 1rem}.navbar-home-link{padding:.5rem}.navbar-home-link span,.username{display:none}}.auth-login-screen,.auth-loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,#f8fafc,#e2e8f0);z-index:9999;font-family:Inter,system-ui,-apple-system,sans-serif;color:#0f172a}.login-card{background:#ffffffe6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(15,23,42,.05);padding:3rem;border-radius:2rem;width:100%;max-width:420px;text-align:center;box-shadow:0 25px 50px -12px #0000001a}.login-icon{width:64px;height:64px;background:#4f46e514;color:#4f46e5;display:flex;align-items:center;justify-content:center;border-radius:1.25rem;margin:0 auto 2rem}.login-card h1{font-size:1.75rem;font-weight:800;margin-bottom:.75rem;letter-spacing:-.02em;color:#0f172a}.login-card p{color:#475569;margin-bottom:2.5rem;line-height:1.6}.login-btn{width:100%;padding:1rem;background:#4f46e5;color:#fff;border:none;border-radius:1rem;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s;box-shadow:0 4px 6px -1px #4f46e533}.login-btn:hover{background:#4338ca;transform:translateY(-2px);box-shadow:0 10px 15px -3px #4f46e54d}.login-btn:active{transform:translateY(0)}.login-error{background:#ef444414;color:#ef4444;padding:1rem;border-radius:.75rem;margin-bottom:1.5rem;font-size:.875rem;border:1px solid rgba(239,68,68,.1)}.login-footer{margin-top:2rem;font-size:.75rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.spinner{width:48px;height:48px;border:4px solid rgba(79,70,229,.08);border-left-color:#4f46e5;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1.5rem}@keyframes spin{to{transform:rotate(360deg)}}
