*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--portal-bg: #050e1a;--portal-accent-p: #00557f;--portal-accent-s: #5fb0a5;--portal-text: #e8edf3;--portal-heading: #f0f5fa;--portal-muted: #7a96b0;--portal-muted-3: #4a6070;--portal-muted-4: #3d5a6e;--portal-line: rgba(255, 255, 255, .06);--portal-line-2: rgba(255, 255, 255, .08)}html,body,#root{height:100%;width:100%}html,body{font-family:Inter,system-ui,sans-serif;background:var(--portal-bg);color:var(--portal-text);-webkit-font-smoothing:antialiased}#root{position:relative;min-height:100%}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1e3a52;border-radius:3px}.portal-bg-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 20% 100%,color-mix(in srgb,var(--portal-accent-p) 13%,transparent) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 80% 0%,color-mix(in srgb,var(--portal-accent-s) 10%,transparent) 0%,transparent 55%),var(--portal-bg)}.portal-app-shell{position:relative;z-index:1;min-height:100%}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes portalPulse{0%,to{opacity:.5}50%{opacity:1}}.portal-animate-fade-up{animation:fadeUp .5s ease both}.portal-logo-placeholder{border-radius:12px;background:#ffffff0f;animation:portalPulse 1.1s ease-in-out infinite}.upload-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px 16px}.upload-card{width:100%;max-width:440px;border-radius:20px;padding:44px 40px 40px;background:#ffffff0a;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);box-shadow:0 32px 80px #00000080,0 0 0 1px #ffffff0a}.upload-card-head{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:32px}.upload-card-titles{text-align:center}.upload-title{font-size:22px;font-weight:700;letter-spacing:-.3px;color:var(--portal-heading)}.upload-subtitle{font-size:13px;color:var(--portal-muted);margin-top:6px;line-height:1.55;max-width:340px;margin-left:auto;margin-right:auto}.upload-form{display:flex;flex-direction:column;gap:14px}.upload-field{display:flex;flex-direction:column;gap:6px}.upload-label{font-size:12px;font-weight:500;color:var(--portal-muted);letter-spacing:.3px}.upload-input-wrap{position:relative;border-radius:10px;border:1.5px solid rgba(255,255,255,.1);transition:border-color .2s ease;background:#ffffff0a;display:flex;align-items:center}.upload-input-wrap--file{min-height:46px;padding:4px 0}.upload-input-wrap--focus{border-color:var(--portal-accent-p)}.upload-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--portal-muted-3);display:flex;pointer-events:none;transition:color .2s ease}.upload-input-wrap--file .upload-input-icon{top:50%}.upload-input-wrap--focus .upload-input-icon{color:var(--portal-accent-p)}.upload-input{width:100%;padding:13px 14px 13px 42px;background:transparent;border:none;outline:none;color:var(--portal-text);font-size:14px;border-radius:10px;font-family:inherit}.upload-file-native{flex:1;min-width:0;padding:8px 12px 8px 42px;background:transparent;border:none;outline:none;color:var(--portal-text);font-size:13px;font-family:inherit}.upload-file-native::file-selector-button{margin-right:10px;padding:8px 12px;border-radius:8px;border:1px solid var(--portal-line-2);background:#ffffff0f;color:var(--portal-text);font-family:inherit;font-weight:500;font-size:12px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.upload-file-native::file-selector-button:hover{background:#ffffff1a;border-color:#ffffff26}.upload-hint{font-size:12px;color:var(--portal-muted-4);line-height:1.45;margin-top:2px}.upload-feedback{font-size:13px;border-radius:8px;padding:10px 14px;line-height:1.45}.upload-feedback--error{color:#f87171;background:#f8717114;border:1px solid rgba(248,113,113,.2)}.upload-feedback--success{color:#86efac;background:#22c55e1a;border:1px solid rgba(34,197,94,.25)}.upload-submit{margin-top:6px;padding:14px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--portal-accent-p) 0%,var(--portal-accent-s) 100%);color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 20px color-mix(in srgb,var(--portal-accent-p) 33%,transparent);display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.upload-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 28px color-mix(in srgb,var(--portal-accent-p) 40%,transparent)}.upload-submit:disabled{background:#1e3a52;cursor:not-allowed;box-shadow:none;opacity:.85}.upload-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.upload-footer{margin-top:28px;font-size:12px;color:#2d4a60;text-align:center}.upload-card--wide{max-width:560px}.upload-choose-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:4px}.upload-choose-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.upload-choose-card:hover{border-color:color-mix(in srgb,var(--portal-accent-p) 50%,transparent);background:#ffffff12;transform:translateY(-1px)}.upload-choose-icon{font-size:22px;line-height:1}.upload-choose-title{font-size:14px;font-weight:600;color:var(--portal-heading)}.upload-choose-desc{font-size:12px;color:var(--portal-muted);line-height:1.45}.upload-actions-row{display:flex;gap:12px;align-items:stretch;margin-top:6px}.upload-back{flex-shrink:0;padding:14px 18px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--portal-text);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .2s ease,border-color .2s ease}.upload-back:hover:not(:disabled){background:#ffffff14;border-color:#ffffff2e}.upload-back:disabled{opacity:.55;cursor:not-allowed}.upload-submit--inline{flex:1;margin-top:0;min-width:0}.upload-input--date{padding-left:14px}@media (max-width: 520px){.upload-choose-grid{grid-template-columns:1fr}}@media (max-width: 400px){.upload-card{padding:32px 22px 28px}}
