:root{--bg: #0b1020;--card: #111a33;--card-soft: rgba(17, 26, 51, .72);--card-soft-2: rgba(17, 26, 51, .54);--text: #e7ecff;--muted: rgba(231, 236, 255, .68);--accent: #6ea8fe;--accent-strong: #8bb9ff;--danger: #ff5c7a;--success: #50d890;--warning: #ffd166;--border: rgba(231, 236, 255, .14);--border-strong: rgba(231, 236, 255, .22);--shadow: 0 18px 45px rgba(0, 0, 0, .28);--radius: 14px;--radius-sm: 10px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-height:100%;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(#050a1999,#050a1999),url(/assets/cloud-bg-DsqsSq2S.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;color:var(--text)}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:none;color:#fff}.navbar{min-height:68px;background:#060a18b8;color:var(--text);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:24px;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:100}.navbar__brand{font-weight:800;font-size:20px;letter-spacing:.3px}.navbar__links{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.navbar__links a{color:var(--muted);padding:8px 10px;border-radius:10px}.navbar__links a:hover,.navbar__links a.active{color:var(--text);background:#6ea8fe1f}.navbar__user{color:var(--accent-strong);font-weight:700;padding:0 4px}.container{max-width:1180px;margin:0 auto;padding:32px 16px 64px}.card{background:var(--card-soft);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.card.wide{max-width:100%}.form-card{max-width:540px;margin:0 auto}h1,h2,h3{color:var(--text)}h1{margin-top:0;font-size:30px;line-height:1.15}p,.muted{color:var(--muted)}form{display:flex;flex-direction:column;gap:16px}label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:var(--text)}input,textarea,select{min-height:40px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000038;color:var(--text);padding:0 12px;font:inherit;outline:none}input[type=file]{padding:8px 12px}input::placeholder,textarea::placeholder{color:#e7ecff6b}input:focus,textarea:focus,select:focus{border-color:#6ea8feb3;box-shadow:0 0 0 3px #6ea8fe1f}button,.button{min-height:40px;border-radius:var(--radius-sm);border:1px solid rgba(110,168,254,.48);background:#6ea8fe29;color:var(--text);padding:0 14px;cursor:pointer;font:inherit;font-weight:800;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}button:hover,.button:hover{background:#6ea8fe47;border-color:#6ea8feb3;color:var(--text);text-decoration:none}button:active,.button:active{transform:translateY(1px)}button.secondary,.button.secondary{border-color:var(--border-strong);background:#e7ecff12}button.secondary:hover,.button.secondary:hover{background:#e7ecff1f}button.danger,.button.danger{border-color:#ff5c7a6b;background:#ff5c7a24}button.danger:hover,.button.danger:hover{background:#ff5c7a3d;border-color:#ff5c7aa8}button:disabled{opacity:.48;cursor:not-allowed}.button.small{min-height:34px;padding:0 10px;font-size:14px}.actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.error{color:#ffd1da;margin:-8px 0 4px}.error-box{background:#ff5c7a1f;color:#ffd1da;border:1px solid rgba(255,92,122,.3);border-radius:var(--radius-sm);padding:12px;overflow-x:auto}.table-wrapper{overflow-x:visible;margin-top:20px;border:1px solid var(--border);border-radius:var(--radius);background:#111a337a}table{width:100%;border-collapse:collapse;background:transparent}th,td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{background:#0000002e;color:#e7ecffe0;font-weight:800;font-size:13px}td{color:#e7ecffe0}tbody tr:hover{background:#6ea8fe12}tbody tr:last-child td{border-bottom:none}.upload-form{display:grid;grid-template-columns:minmax(200px,1fr) minmax(200px,1fr) auto;align-items:end;gap:16px;margin-bottom:24px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:#111a338a}.home{display:flex;flex-direction:column;gap:24px}.home-hero{text-align:center}.home-hero h1{margin-top:0;font-size:38px}.home-hero p{max-width:820px;margin-left:auto;margin-right:auto}.home-actions-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:20px}.home-action-card{background:var(--card-soft);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border:1px solid var(--border);display:flex;flex-direction:column;gap:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.home-action-card h2{margin:0}.home-action-card p{flex:1;margin-bottom:8px}.admin-card{border-color:#6ea8fe52;background:#111a33c7}.admin-button{border-color:#8bb9ff80;background:#8bb9ff29}.admin-button:hover{background:#8bb9ff47}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-header h1{margin-top:0;margin-bottom:8px}.form-footer{display:flex;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap}.checkbox-label{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-weight:400}.checkbox-label input{width:auto}code{display:inline-block;max-width:220px;padding:3px 6px;border-radius:6px;background:#0000003d;color:#e7ecffd1;font-size:13px;word-break:break-all}.field-with-tooltip{position:relative;width:100%}.field-with-tooltip input{width:100%}.input-error{border-color:#ff5c7acc;background:#ff5c7a12}.input-error:focus{border-color:#ff5c7ae6;box-shadow:0 0 0 3px #ff5c7a1f}.field-tooltip{position:relative;z-index:20;margin-top:8px;max-width:100%;min-width:240px;background:#ff5c7a2e;color:#ffd1da;border:1px solid rgba(255,92,122,.32);padding:8px 10px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;line-height:1.35}.field-tooltip:before{content:"";position:absolute;top:-6px;left:16px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(255,92,122,.32)}.form-alert{padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;line-height:1.4}.form-alert-error{background:#ff5c7a1f;color:#ffd1da;border:1px solid rgba(255,92,122,.3)}.form-alert-success{background:#50d8901f;color:#c7f9dc;border:1px solid rgba(80,216,144,.3)}.form-alert-warning{background:#ffd1661f;color:#ffecb3;border:1px solid rgba(255,209,102,.3)}.file-name-cell{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:260px}.file-name-text{font-weight:800;color:var(--text);word-break:break-word}.file-actions-menu-wrap{position:relative;flex:0 0 auto}.icon-menu-button{width:34px;min-width:34px;height:34px;min-height:34px;padding:0;border-radius:10px;font-size:22px;line-height:1;font-weight:900;background:#e7ecff0f;border-color:var(--border)}.icon-menu-button:hover{background:#6ea8fe2e}.file-actions-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:80;min-width:230px;padding:8px;border-radius:14px;border:1px solid var(--border);background:#090e1ff5;box-shadow:0 18px 45px #0000006b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.file-actions-dropdown:before{content:"";position:absolute;top:-6px;right:13px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(9,14,31,.96)}.file-action-item{width:100%;min-height:38px;padding:0 10px;border:none;border-radius:10px;background:transparent;color:#e7ecffe0;display:flex;align-items:center;justify-content:flex-start;gap:10px;font-weight:700;text-align:left;cursor:pointer}.file-action-item:hover{background:#6ea8fe24;color:#fff}.file-action-item.danger{color:#ffd1da}.file-action-item.danger:hover{background:#ff5c7a29;color:#fff}.file-action-icon{width:22px;text-align:center;font-size:16px;flex:0 0 auto}.download-confirm-wrapper{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 160px)}.download-confirm-card{width:100%;max-width:540px;background:var(--card-soft);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.download-confirm-card h1{margin-top:0;margin-bottom:20px;font-size:26px;color:var(--text)}.download-file-info{display:flex;flex-direction:column;gap:12px;background:#0000002e;border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;margin-bottom:22px}.download-file-info p{display:flex;justify-content:space-between;gap:16px;margin:0}.download-file-info span{color:var(--muted)}.download-file-info strong{color:var(--text);text-align:right;word-break:break-word}.download-confirm-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}@media (max-width: 1000px){.home-actions-grid{grid-template-columns:1fr}.page-header{flex-direction:column}}@media (max-width: 800px){.navbar{align-items:flex-start;flex-direction:column;padding:16px}.upload-form{grid-template-columns:1fr}.file-name-cell{min-width:220px}}@media (max-width: 600px){.container{padding:24px 12px 48px}.card{padding:20px}.home-hero h1{font-size:28px}.home-action-card{padding:18px}.form-footer{flex-direction:column}code{max-width:160px}.download-file-info p{flex-direction:column;gap:4px}.download-file-info strong{text-align:left}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000094;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.confirm-modal{width:100%;max-width:520px;background:#090e1ff5;border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:0 24px 70px #00000080}.confirm-modal-header{display:flex;align-items:flex-start;gap:16px}.confirm-modal-icon{flex:0 0 auto;width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:var(--accent-strong);background:#6ea8fe24;border:1px solid rgba(110,168,254,.34);font-size:24px;font-weight:900}.confirm-modal-icon-danger{color:#ffd1da;background:#ff5c7a24;border-color:#ff5c7a61}.confirm-modal h2{margin:0 0 8px;font-size:22px}.confirm-modal p{margin:0;color:var(--muted);line-height:1.5}.confirm-modal-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:24px}.progress-box{margin:14px 0 18px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:#090e1fb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.progress-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--text);font-weight:700}.progress-header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-header strong{color:var(--accent-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.progress-track{width:100%;height:10px;overflow:hidden;border-radius:999px;background:#e7ecff1a;border:1px solid rgba(231,236,255,.12)}.progress-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#6ea8feb8,#8bb9ff);box-shadow:0 0 18px #6ea8fe8c;transition:width .18s ease}.file-input-wrapper{width:100%}.file-input-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-input-label{min-height:40px;width:100%;display:flex;flex-direction:row;align-items:center;gap:10px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000038;cursor:pointer;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.file-input-label:hover{border-color:#6ea8fe8c;background:#00000047}.file-input-label:focus-within{border-color:#6ea8feb3;box-shadow:0 0 0 3px #6ea8fe1f}.file-input-button{flex:0 0 auto;height:28px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid rgba(110,168,254,.38);background:#6ea8fe1f;color:#e7ecffe0;font-size:13px;font-weight:800;transition:background .15s ease,border-color .15s ease}.file-input-label:hover .file-input-button{background:#6ea8fe33;border-color:#6ea8fe94}.file-input-label.has-file .file-input-button{display:none}.file-input-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e7ecff6b;font-size:14px;font-weight:500}.file-input-label.has-file .file-input-name{color:var(--text);font-weight:700}.button,button{display:inline-flex;align-items:center;justify-content:center;text-align:center}.page-header .button{align-self:flex-start;min-height:40px;line-height:1}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-th-button{width:100%;min-height:auto;height:auto;display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0;border:none;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer}.sortable-th-button:hover{background:transparent;color:var(--text)}.sortable-th-button:active{transform:none}.sort-arrow{display:inline-flex;align-items:center;justify-content:center;min-width:14px;color:var(--accent-strong);font-size:11px;line-height:1}.sort-arrow.inactive{color:#e7ecff47}.storage-drop-page{position:relative;min-height:calc(100vh - 72px)}.storage-drop-page.drag-active:before{content:"Отпустите файл для загрузки";position:fixed;top:72px;right:18px;bottom:18px;left:18px;z-index:90;display:flex;align-items:center;justify-content:center;border:2px dashed rgba(139,185,255,.8);border-radius:22px;background:#050a1994;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text);font-size:26px;font-weight:900;text-align:center;pointer-events:none;box-shadow:0 0 0 9999px #00000038,0 18px 55px #00000059}.storage-drop-page.drag-active:after{content:"Файл будет добавлен в текущее хранилище";position:fixed;left:50%;top:calc(50% + 42px);z-index:91;transform:translate(-50%);color:#e7ecffbd;font-size:15px;font-weight:700;text-align:center;pointer-events:none}.file-name-cell{display:flex;align-items:center;justify-content:space-between;gap:12px}.file-name-main{min-width:0;display:flex;align-items:center;gap:12px}.file-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.file-visual{position:relative;flex:0 0 auto;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border-radius:11px;border:1px solid rgba(231,236,255,.16);background:#e7ecff14;box-shadow:inset 0 1px #ffffff14,0 8px 20px #0000002e}.file-visual-preview img,.file-visual-preview video{width:100%;height:100%;display:block;object-fit:cover}.file-visual-preview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#0000000a,#00000047)}.file-video-play-mark{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#050a19b8;border:1px solid rgba(231,236,255,.22);color:#fff;font-size:10px;line-height:1;padding-left:2px}.file-type-icon{color:#fff;font-size:10px;font-weight:900;letter-spacing:.4px}.file-type-icon span{position:relative;z-index:2}.file-type-icon:before{content:"";position:absolute;right:0;top:0;width:14px;height:14px;background:#ffffff3d;clip-path:polygon(0 0,100% 0,100% 100%)}.file-type-pdf{background:linear-gradient(135deg,#ff496d,#b51f3f)}.file-type-doc{background:linear-gradient(135deg,#5c9dff,#2354d6)}.file-type-xls{background:linear-gradient(135deg,#4bd889,#157a46)}.file-type-ppt{background:linear-gradient(135deg,#ff9b54,#ca4b19)}.file-type-txt{background:linear-gradient(135deg,#9aa7bd,#4b5568)}.file-type-archive{background:linear-gradient(135deg,#ffd166,#a46b00)}.file-type-code{background:linear-gradient(135deg,#a78bfa,#5b21b6)}.file-type-audio{background:linear-gradient(135deg,#34d399,#047857)}.file-type-app{background:linear-gradient(135deg,#f472b6,#be185d)}.file-type-generic{background:linear-gradient(135deg,#6ea8fe,#263f78)}
